前缀和
文章平均质量分 95
允歆辰丶
一个平平无奇的码农
展开
-
Java之差分算法
它的每一项与前边一项进行的操作例如差分数组类似于这样的操作就叫做差分。差分数组主要用于解决:对某些不确定的区间多次进行加减操作时,如果每次都是对这些区间遍历操作,(设进行n次操作,每次对长度为m的数组进行操作),时间复杂度为O(nm),如果使用差分来进行解决的话,可以将时间复杂度变为O(n)注意:差分只能够解决加减的问题,不能够解决乘除的问题1.构造差分数组: 数组为:a[0],a[1],a[2],.....a[n] 那么差分数组为:b[0]=a[0],b[1]=a[1]-a[0],b[2]=a原创 2023-02-22 21:20:57 · 1943 阅读 · 12 评论 -
Java之前缀和算法
前缀和,顾名思义,就是前n项相加之和,和我们高中时候学习的数列中的一个含义例如一个等差数组=n,那他的前n项和也可知道。相当于外层循环确定end,内层循环确定开始的位置start的位置其实我们可以用一个哈希表进行优化,因为它的前缀和每次都是叠加的,其实只要统计它的每个前缀和的次数,然后prefix-k就是它从0到start的前缀和,此时start+1到end的位置就是和为k的子数组,同时map哈希表刚开始的时候还要添加key=0,value=1的键值对,因为当prefix刚好为k的时候,prefix-k原创 2023-02-22 15:25:37 · 2737 阅读 · 13 评论