Leetcode 303
class NumArray {
public:
vector<int> ans;
NumArray(vector<int>& nums) {
int n=nums.size();
ans.resize(n+1);
for(int i=0;i<n;i++){
ans[i+1]=ans[i]+nums[i];
}
}
int sumRange(int i, int j) {
return ans[j+1]-ans[i];
}
};
Leetcode 304
class NumMatrix {
public:
vector<vector<int> >ans;
NumMatrix(vector<vector<int>>& matrix) {
int m=matrix.size();
if(m>0){
int n=matrix[0].size();
ans.resize(m+1,vector<int>(n+1));
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
ans[i+1][j+1]=ans[i+1][j]+ans[i][j+1]-ans[i][j]+matrix[i][j];
}
}
}
}
int sumRegion(int row1, int col1, int row2, int col2) {
return ans[row2+1][col2+1]-ans[row1][col2+1]-ans[row2+1][col1]+ans[row1][col1];
}
};