二维前缀和
,建立在
一维前缀和
之上,我们要求一个矩阵内一个任意的子矩阵的数的和,我们就可以用二维前缀和。
我们可以感性的将其理解为建立在二维平面上的前缀和,如下图:
红色区域所有数的和即为二维前缀和中点(i,j)的值。
一、如何预处理
类比一维前缀和,我们可以在O(n)的时间复杂度下预处理,如下代码:
a[i]+=a[i-1];
那么对于二维前缀和,我们怎么预处理呢?
我们可以感性的将其理解为建立在二维平面上的前缀和,如下图:
红色区域所有数的和即为二维前缀和中点(i,j)的值。
类比一维前缀和,我们可以在O(n)的时间复杂度下预处理,如下代码:
a[i]+=a[i-1];
那么对于二维前缀和,我们怎么预处理呢?