刷题
mea su
这个作者很懒,什么都没留下…
展开
-
前缀和
用于本人复习的前缀和文章 前缀和 一维数组的应用 对于一个数组nums,我们设定一个前缀和数组p_m。p_m数组中的元素含义为p[i] = nums[0]+nums[1]+…nums[i]. 一般更新方式为p[i] = p[i-1]+nums[i] 在刷题过程中往往会遇到一类问题,暴力做法可能需要枚举一个整体的所有子可能;例如一个字符串的所有字串。根据具体需要,可能前缀和将会起到帮助作用,降低时间复杂度。 假如nums = [1,2,3,-2,5,-7,-5,10],我们需要求得他连续子数组的最大和。原创 2020-05-20 14:43:03 · 236 阅读 · 0 评论 -
快速幂
用于自己复习的快速幂算法 快速幂简介 一般所用快速幂有求数字a的b次方,还有矩阵快速幂:a矩阵的b次方。 原理简介:假设我们要求8的10次方,如果正常采用O(n)算法,每次循环乘以8。我们总共需要10次运算。 但是,一个数的幂次可以写成加法的形式。ak=ab∗aca^k = a^b*a^cak=ab∗ac,当k=b+c时。 我们把10用二进制表示为1010。810 = 88 ∗*∗ 82.观察其幂次分别为8=238 = 2^38=23,也就是1000;2=212 = 2^12=21,也就是10。我们原创 2020-05-13 23:11:43 · 115 阅读 · 0 评论 -
KMP算法
本文用于自己观看回忆KMP算法 KMP算法简介 1.可在一个主文本字符串S内查找一个词W的出现位置。 2.其流程大致分为两步,第一为构造next数组。第二部分利用next数组来实现模式串w与S的匹配,找到字符串S中w第一次出现的位置(索引)。 Next数组 首先Next数组元素定义为,该字符之前的字符串中具有相同前缀后缀的长度为多少。例: 给定S串“DABCDABDE”,设他的next数组 P,P数组所存的值应该依次为[-1,0,0,0,0,1,2,3,1]。 其中,E对应的next 值为1(即字符E之原创 2020-05-13 16:13:54 · 100 阅读 · 0 评论