算法
文章平均质量分 97
博观而约取,厚积而薄发
DAY Ⅰ
积薪高于山,焉用先后别
展开
-
【数据结构】朴素模式匹配 & KMP算法
💯KMP算法就是消除指针i的回溯,让i指针只进不退,而只移动模式串指针指向位置的方法,由于此时"$p_1...p_{k-1}$"和"$p_{j-k+1}..p_j$"都是相同的,所以这时候相当于将$j1$指针指向前缀,$j1$不断前移,$j2$指针指向后缀,$j2$不断后移(这里j1是主动指针,而j2相当于从动指针),因为只要保证他们一直为之前的公共前缀,就可以不用在意这$k'-1$长度的子串,这样主要考虑的就是要找到前缀中的一个值 $p_k'=p_j$原创 2023-07-16 17:21:57 · 1970 阅读 · 7 评论 -
【算法】— 线段树详解
线段树:一种用于区间处理的数据结构,基于二叉树,也就是对于一个线段,我们会用一个二叉树来表示,首先,将每一个数字放在二叉树的叶子结点上,从叶子结点开始,两两合并为一棵子树,将包含的两个叶子结点的最小值存入该子树的父结点原创 2023-05-23 21:50:45 · 784 阅读 · 3 评论 -
【算法】—BFS广度优先搜索详解
这篇文章介绍了BFS广度优先遍历的相关知识,包括字典的创建、修改和遍历,以及双向广搜的概念、实现和应用。!!觉得本篇有帮助的话,就赏个三连吧~二叉树的层序遍历二叉树的右视图迷宫跳蚱蜢。原创 2023-04-15 15:23:25 · 222 阅读 · 2 评论 -
【算法】—DFS深度优先搜索详解
dfs:一种用于遍历或搜索树或图的算法,沿着树的深度遍历树的节点,尽可能深的搜索树的分支,当节点v的所在边都己被探寻过或者在搜寻时结点不满足条件,搜索将回溯到发现节点v的那条边的起始节点,整个进程反复进行直到所有路径都已经被搜寻,属于盲目搜索,最糟糕的情况算法时间复杂度为O(n!)原创 2023-04-12 09:00:00 · 505 阅读 · 7 评论 -
【算法】—dp动态规划详解2
当我们在可选范围内新增一个物品 i 时(**增加一个物品实际上是加上了它的体积和重量,它的性质才是应该关注的点,所以这里增加i实际上顺带也增加了状态w[i]和v[i]**),我们有两个选择——**==加或不加==**:1. 若不想加该物品(可能价值很低),保持之前一段:`dp[i][j]=dp[i-1][j]`2. 若想要加入该物品(可能是价值很高),则要考虑是否能加入: 1. 当前背包最大容量足够加入该物品时:`dp[i][j]=dp[i-1][j-v[i]]+w[i]` 2. 当原创 2023-04-08 22:37:24 · 199 阅读 · 3 评论 -
【算法】—dp动态规划详解1
🧐 总结:当dp数组为多个状态时,我们可以用命名方式(:开辟多个数组分散表示多种情况)降维,确定每一种情况对应的方程,最后组成状态转移方程,用循环方式进行递推其实这个方法有一个好处,之前没有提及,我们将二维数组转为一维数组已经是一个空间优化了,其实在该类问题下,当前状态只由前一天的状态递推而来,所以,只与两个数组的前一个值有关,因此,我们还可以将一维数组直接转化为一个变量储存,以买卖股票的最好时机VI 为例!觉得本篇有帮助的话· 就赏个三连吧~不同路径买卖股票的最好时机I买卖股票的最好时机II。原创 2023-04-05 19:29:15 · 236 阅读 · 3 评论 -
【算法】—贪心算法详解
!翻硬币快乐司机旅行家的预算买卖股票的最好时机I买卖股票的最好时机IIPrim算法_CSDN博客_prim算法dijstra求最短路径最小花费。原创 2023-04-02 18:27:22 · 7569 阅读 · 0 评论 -
【算法】—前缀和与差分详解
前缀和指一个数组的某下标之前的所有数组元素的和(即数列的前n项求和),前缀和是一种重要的预处理,能够降低算法的时间复杂度,可以快速地求出某一段的和,对于处理区间之间的问题是往往十分高效相比较其他算法而言,前缀和更像是一种解题的技巧,一种优化方式输入一个长度为 n 的整数序列。接下来再输入 m 个询问,每个询问输入一对 l,r 对于每个询问,输出原序列中从第 l 个数到第 r 个数的和5 32 1 3 6 41 21 32 4123453610。原创 2023-03-29 09:00:00 · 3250 阅读 · 6 评论 -
【算法】—二分法详解
在计算机科学中,二分查找算法也称折半搜索算法,对数搜索算法,是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半,时间复杂度是log(n)二分法的步骤:我们要在一组升序的数组找一个数的下标,那我们肯定是先拿中间的与他进行比较,比较大小的判断,其实原创 2023-03-28 10:52:43 · 8266 阅读 · 4 评论 -
【算法】—数论
GCD 即最大公约数Greatest Common Divisor。整数 a 和 b 的最大公约数是指能同时整除 a 和 b的最大整数,记为 gcd(a,b)两个或多个整数公有的倍数叫做它们的公倍数,其中除0以外最小的一个公倍数就叫做这几个整数的最小公倍数。整数a,b的最小公倍数记为lcm(a,b)本章主要介绍了数论、埃氏筛法、欧拉筛法、求区间素数、高斯消元、牛顿迭代法和最小二乘法。!觉得本篇有帮助的话,就赏个三连吧~原创 2023-04-18 14:30:49 · 457 阅读 · 0 评论