LeetCode 304. Range Sum Query 2D - Immutable
二维的,那就二维前缀和数组
class NumMatrix {
public:
int prefix[1005][1005];
NumMatrix(vector<vector<int>>& matrix) {
memset(prefix,0,sizeof(prefix));
for(int i=0;i<matrix.size();i++)
{
for(int j=0;j<matrix[i].size();j++)
{
prefix[i+1][j+1]=prefix[i][j+1]+prefix[i+1][j]-prefix[i][j]+matrix[i][j];
}
}
}
int sumRegion(int row1, int col1, int row2, int col2) {
return prefix[row2+1][col2+1]-prefix[row1][col2+1]-prefix[row2+1][col1]+prefix[row1][col1];
}
};
/**
* Your NumMatrix object will be instantiated and called as such:
* NumMatrix* obj = new NumMatrix(matrix);
* int param_1 = obj->sumRegion(row1,col1,row2,col2);
*/