求sum前缀和数组的图解
来源
![在这里插入图片描述](https://img-blog.csdnimg.cn/fbede4d3523449d6a4bf3489894ea584.png)
计算差分数组的图解
来源
![在这里插入图片描述](https://img-blog.csdnimg.cn/a801ec76943d422c984e928df6a996a6.png)
二维前缀和模板
class NumMatrix {
public:
vector<vector<int>> sum;
NumMatrix(vector<vector<int>>& matrix) {
int m = matrix.size();
if(m > 0){
int n = matrix[0].size();
sum.resize(m + 1, vector<int>(n + 1, 0));
for(int i = 0; i < m; i++){
for(int j = 0; j < n ;j++){
sum[i + 1][j + 1] = sum[i][j + 1] + sum[i + 1][j] - sum[i][j] + matrix[i][j];
}
}
}
}
int sumRegion(int row1, int col1, int row2, int col2) {
return sum[row2 + 1][col2 + 1] - sum[row1][col2 + 1] - sum[row2 + 1][col1] + sum[row1][col1];
}
};