算法与数据结构
文章平均质量分 90
算法与数据结构
亚洲第一中锋_哈达迪
这个作者很懒,什么都没留下…
展开
-
深入理解数据结构 —— 差分
对于一个数组:我们构造一个数组:使得数组a是数组b的前缀和数组,即则数组b就是数组a的差分当我们得到数组b后,只用对b求一遍前缀和,就能得到数组a,耗时假设有如下需求:给一个范围[l,r],对数组a,在这个范围内的数全部加上c如果暴力做,需要每次都耗时但如果用差分做,每次只用耗时,最后再对差分数组求一个前缀和得到原数组那具体怎么用差分做呢?原创 2023-01-15 09:19:11 · 1061 阅读 · 0 评论 -
详细分析单调栈,及正确性证明
对于一个数组,需要对每个位置生成,左右两边离它最近的,比它小(或比它大)的原创 2023-01-07 09:10:40 · 654 阅读 · 0 评论 -
多图解析manacher算法原理
根据上面的分析,manacher算法的流程可以总结为:i位置比R位置大:暴力扩i位置小于等于Ri扩出来的区域,在(L,R)之间:i的回文半径就是i的回文半径i*扩出来的区域的左边界比L更小:i的回文半径就是从i到R的距离i*扩出来区域的左边界和L重合:i的回文半径至少为从i到R的距离,至于有没有可能更长需要往外扩尝试。原创 2023-01-13 21:31:41 · 341 阅读 · 0 评论 -
多图解析KMP算法原理
KMP是一种字符串匹配算法,能够判断字符串s2,是否为字符串s1的子串例如:s1 =,s2 ="123",KMP会返回4,代表s2是s1的子串,第一个匹配的下标为3假设s1的数据规模为M原创 2023-01-07 09:07:44 · 686 阅读 · 0 评论 -
深入理解数据结构 —— 树状数组
我们知道,前缀和数组能解决任意一段区间的累加和问题但这建立在数组中的元素不发生变化的情况,如果可以修改原始数组中的某个元素,为了让前缀和数组正确原创 2023-01-07 23:20:37 · 287 阅读 · 0 评论 -
深入理解数据结构 —— 跳表
只要是平衡搜索二叉树能实现的功能,跳表都能实现,且时间复杂度都相同这些操作的时间复杂度都为O(logN)原创 2023-01-08 13:15:45 · 564 阅读 · 0 评论 -
深入理解数据结构 —— 并查集
并查集是一种数据结构,主要能够高效地实现以下两个功能原创 2023-01-14 10:22:47 · 751 阅读 · 0 评论