前缀和算法主要应用于连续子数组的问题,包括矩阵;
必要条件:连续性,子数组,与和可以联系上
一:
题目链接:子段求和
如果我们不用sum[i]保存前i项的和,那么每次查询都要遍历一遍,如果记录下来,那么后面的查询直接相减就可以了。
延伸:子数组的和的问题,具有一定的规律性
见 leetcode
974 |
二:
题目链接:最大子矩阵
这是前缀和应用比较广泛的一个问题,也是经典的动态规划问题,利用二维前缀和计算。
具体思路就是根据矩形的子矩形面积的减法运算来完成;
sum(ix, jy) = sum(i,j) - sum(ix,j) -sum(i,jy)+sum(x,y)
三:待补充