- 博客(2)
- 收藏
- 关注
原创 一文搞懂KMP算法
如果我们知道 t[0,1,......, j-1] 的所有前缀和后缀字串中的最长匹配串为 k,也就是 t[0, 1, ....., k-1] = t[j-k, ......, j-1],那么我们就知道 t[0, 1, ....., k-1] 和 s[i] 的前 k 个字符是匹配的,那么 j 只需要回退到 k+1 的位置(为什么 i 不需要回溯呢?如上面的例子,t[7]=d,t[0, ......, 6] 的最长公共前后缀长度为 3,所以 next[7]=3,也就是当 j 等于 7 发生 s[i]!
2023-04-09 12:08:18 45 1
原创 树状数组及其应用
一. 树状数组结构详解 1. 什么时候使用树状数组 现在有一个数组nums[n]。在进行数组处理时常遇到这样一类问题:单点更改某位置的值;查询某个区间[left, right]内的值的和。如果使用常规的方法,在进行update(int loc)操作时,直接更新即可;在进行求区间和sumRange(int left, int right)时,直接求和即可,这样最坏情况的时间复杂度是O(n^2)。在大量数据下这个复杂度太高了,不可接受。树状数组就是来应对这个问题的,它可以大大降低时间复杂度。 .........
2022-04-04 16:54:24 1099
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人