算法 随想录 柠檬水 队列
【学习笔记】Bostan-Mori 算法
其实是用于常系数齐次线性递推,只不过本篇博文只讲解如何求分式的高次项系数。 已知多项式 $f(x),g(x)$,要求:$[x^k]\dfrac{f(x)}{g(x)}$,其中 $f(x),g(x)$ 的次数为 $n,m$,$n,m\le 10^5,k\le 10^9$。 算法流程如下: 分式上下同乘 ......
算法学习
今天听杨老师说的,我们要去学和发展不同那些在it培训班的领域,但是我们只能从那些B站那些培训课去学习,并没有亮点, 可能毕业后,还不如培训班出来的呢,所以我打算算法上面下下功夫,以后的计划是加强java C++这两门语言基础,然后每天一道算法题。 ......
算法——二分查找
1、在有序数组中查找元素的第一个和最后一个位置 1 class Solution { 2 public int[] searchRange(int[] nums, int target) { 3 int leftindex=binarySearch(nums,target); 4 int right ......
二分算法学习笔记与总结
二分算法学习笔记与总结 [toc] # 二分 > **二分查找** 侧重于查找一个元素是否存在,而 **二分答案** 则侧重于找到答案。 ## 二分原理 > 二分,分而为二。 二分算法,顾名思义,就是把一组有序数据的搜索区域缩小一半。 ## 整数二分 ### 二分查找原理 ![一种查找方式](htt ......
YbtOJ 「动态规划」 第6章 单调队列
## 单调队列 ### [A. 【例题1】滑动窗口](http://noip.ybtoj.com.cn/contest/682/problem/1) 版子题 注意先插入数值再弹出的写法 有效区间是$[i-k+1,i]$ 所以所有$i\le k$的点都需要被弹出 ```c++ #include usi ......
Snap算法学习01-03Snap中的类及其定义
//graph.h定义的基本类型 无向图 /// Undirected graph. ##TUNGraph::Classclass TUNGraph 有向图 /// Directed graph. ##TNGraph::Classclass TNGraph 二部图 /// Bipartite gra ......
JavaScript 算法基础练习
// 1.生成数据,后一个数是前两个的和 // function fibonacci(n){ // const fib=[0,1] // for(let i=2;i<n;i++){ // fib[i]=fib[i-1]+fib[i-2] // } // return fib // } // cons ......
什么是算法?
扎实打牢数据结构算法根基,从此不怕算法面试系列之001 week01 02-01 什么是算法? 1、什么是算法? 为了明确什么是算法,我们会从简单的查找功能开始讲起。 查找其实一个一个非常简单的算法,但我们会为这个查找功能的算法做如下工作: 让查找的功能适应更多的数据类型 通过查找的例子讲解如何编写 ......
二叉树中的递归算法(二)
## 从二叉树遍历看递归 - 二叉树 二叉树(binary tree)是指树中节点的度不大于2的有序树,它是一种最简单且最重要的树。 二叉树的递归定义为:二叉树是一棵空树,或者是一棵由一个根节点和两棵互不相交的,分别称作根的左子树和右子树组成的非空树;左子树和右子树又同样都是二叉树。 ![](htt ......
代码随想录|各种买卖股票问题
121. 买卖股票的最佳时机 122.买卖股票的最佳时机II 123.买卖股票的最佳时机III 188.买卖股票的最佳时机IV 309.最佳买卖股票时机含冷冻期 714.买卖股票的最佳时机含手续费 总结 121. 买卖股票的最佳时机 全程只能买卖一次 贪心算法 这个算法的写法也非常有意思!左边小右边 ......
2023-07-01:redis过期策略都有哪些?LRU 算法知道吗?
2023-07-01:redis过期策略都有哪些?LRU 算法知道吗? 答案2023-07-01: ### 缓存淘汰算法(过期策略) 当Redis的内存超出物理内存限制时,内存中的数据就会频繁地与磁盘进行交换,这个过程叫做交换(swap)。由于交换的高开销,Redis的性能会急剧下降。对于访问频率较 ......
列车算法
[资料来源](http://www.ssw.uni-linz.ac.at/General/Staff/TW/Wuerthinger05Train.pdf)http://www.ssw.uni-linz.ac.at/General/Staff/TW/Wuerthinger05Train.pdf 程序可 ......
众所周知,梯度下降法是一种基本的优化算法,不能保证全局最优,也不能保证效率。为什么它仍然被广泛应用于深度学习,而不是传统的凸优化算法和粒子群算法
梯度下降法在深度学习中被广泛应用的原因主要有以下几点: 适用性广泛:梯度下降法可以应用于各种深度学习模型,包括神经网络、卷积神经网络、循环神经网络等。而传统的凸优化算法和粒子群算法往往只适用于特定类型的优化问题。 原理简单:梯度下降法的原理相对简单,易于理解和实现。相比之下,传统的凸优化算法和粒子群 ......
理解KMP算法
# KMP算法 ### 一. 介绍 #### KMP算法是一种高效的字符串匹配算法,其时间复杂度为O(n+m),其主要原因是目标串指针不回溯。 #### 1.1 为什么目标串指针不用回溯? ##### 1.1.1 什么是前后缀? ~~~markdown **前缀是指不包含最后一个字符的所有以第一个字 ......
算法学习day03链表part01-203、707、206
package SecondBrush.LinkedList.LL1; /** * 203.移除链表元素 * 删除链表中等于给定值 val 的所有节点。 * 自己再次概述一下这个过程: * 1.移除元素,要采用设置虚拟节点的方式,因为那样不需要考虑头结点问题 * 2.设置两个虚拟指向 * 3.移除元 ......
算法学习day04链表part02-24、19、0207、142
package SecondBrush.LinkedList.LL1; /** * 24. 两两交换链表中的节点 * */ public class SwapNodesInPairs_24 { public ListNode swapPairs(ListNode head){ ListNode du ......
manacher马拉车算法
[toc] # manacher算法 用于求解字符串中的最长回文子串 ## 相关资料 1. [马拉车算法(不懂问我)](https://blog.csdn.net/qq_43152052/article/details/100784978) ......
算法学习day02数组part02-977、209、59
package SecondBrush.Array; /** * 977.有序数组的平方 * 输入:nums = [-4,-1,0,3,10] 输出:[0,1,9,16,100] * <p> * 不看解题思路,想到的是双指针 * 一个在开头,一个在末尾,但是一下没想到怎么写 * 看了一下一刷内容,想 ......
【牛客小白75】D 矩阵 【bfs+优先队列】
####题目 https://ac.nowcoder.com/acm/contest/60063/D 题意是说,给你一张 $n * m(n,m \leq 10^3)$ 大小的01地图,当前点下一步只能走到相邻的点上,如果这两个点值相同,则代价为2,否则代价为1,问从(1,1)走到(n,m)最少代价是 ......
算法中的数学--gpt回答
在算法工作中,用到最多的数学部分可以归纳为以下几个方面: 离散数学:离散数学是研究离散对象及其关系的数学分支,对于算法设计和分析非常重要。其中包括集合论、图论、逻辑、排列组合等内容。图论在许多算法领域都有广泛应用,例如网络流算法、最短路径算法、图匹配算法等。 概率与统计:概率论和统计学在算法设计和分 ......
js 数组和链表分别实现队列
链表实现 /** * 链表实现队列 * 1.从尾入,头出 * 2.单独记录length */ class MyQueue { head = null; // 头 tail = null; // 尾 len = 0; add(n) { let newNode = { value: n, // 因为是最 ......
代码随想录算法训练营第二十一天| 216.组合总和III 17.电话号码的字母组合
216.组合总和III 思路: 很像上一个组合类型的题目,唯一不同的就是自己写一个sum 代码: 1 void convertBST_cur(TreeNode* root, vector<TreeNode*>& nodes) 2 { 3 if (!root) return ; 4 if (root- ......
单调队列
[toc] # 单调队列 单调的队列,即插入元素时保证队列是单调的。 去尾、删头、窗口 来维护一个单调队列 # 例题 洛谷:[P2629](https://www.luogu.com.cn/problem/P2629 "P2629") ## [洛谷P1886](https://www.luogu.c ......
2023ACM暑假训练day 5-单调队列 单调栈
[toc] # DAY 5 单调队列/栈 训练地址:[传送门](https://vjudge.net/contest/565754) ## 训练情况简介 早上:A、B、C、D题 下午:E题(未出,看了题解)、F题(暂时没有思路) 晚上:牛客小白月赛75+F、G题 6.30 记 今天仅做了单调栈的题, ......
递归算法理解 (一)
## Introduction 递归算法是一种直接或者间接调用自身函数或者方法的算法。递归算法的实质是把问题分解成规模缩小的同类问题的子问题,然后递归调用方法来表示问题的解。递归算法对解决一大类问题很有效,它可以使算法简洁和易于理解。递归算法,其实说白了,就是程序的自身调用。它表现在一段程序中往往会 ......
四种语言刷算法之LRU 缓存
力扣146. LRU 缓存 1、C typedef struct { int key; int val; UT_hash_handle hh; } LRUCache; LRUCache* usr = NULL; int size = 0; LRUCache* lRUCacheCreate(int c ......
万字长文解析最常见的数据库恢复算法: ARIES
#万字长文解析最常见的数据库恢复算法: ARIES > 首发地址: https://mp.weixin.qq.com/s/Kc13g8OHK1h_f7eMlnl4Aw ## Introduction ![image](https://img2023.cnblogs.com/blog/687923/2 ......
数据结构和算法的关系
1.数据结构是一门研究组织数据方式的学科,有了编程呢个语言也就有了数据结构,学好数据结构可以编写出更加漂亮,更加有效率的代码 2.要学好数据结构就要多多考虑如何将生活中遇到的问题,用程序去实现解决 3.程序=数据结构+算法 4.数据结构是算法的基础,换言之,要学好算法,需要把数据结构学到位 ......