前缀和—— 一维数组和二维数组的前缀和
Posted 水田如雅
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前缀和—— 一维数组和二维数组的前缀和相关的知识,希望对你有一定的参考价值。
一维数组前缀和
定义
对于长度为n的数组num[], 0<=i & i<n,对于位置i的前缀和为Sum(num[0]~num[I]),即从0连续加到i的和。
例如:num=[1,2,3],则前缀和数组为:sum=[1,3,6]
1 | 2 | 3 |
---|---|---|
1 | 1+2 | 1+2+3 |
应用示例
例如,对于长度为n的数组num[],0<=i & i<n,并且0<=j & j<n,并且 j>i;给定任意j,i,求解从j~i的连续和。
0 | … | j | … | I | … | n-1 |
---|---|---|---|---|---|---|
我们可以每次循环,从j加到i,得到结果值;我们也可以计算出每个位置的前缀和,那么sum[j~i]=sum[i]-sum[j]
;
这样每次给定任意i,j,只需一步计算即可得到值;
二维数组前缀和
定义
现有二维数组:
int[][] grid=new int[m][n];
<
以上是关于前缀和—— 一维数组和二维数组的前缀和的主要内容,如果未能解决你的问题,请参考以下文章