Range Sum Query 2D - Immutable | C++ | DP |Easy
class NumMatrix {
public:
    vector<vector<int>> arr;
    NumMatrix(vector<vector<int>>& matrix) {
      vector<vector<int>>  temp(matrix.size(),vector<int>(matrix[0].size()+1,0));  // only for initializing( 0 for every element ) a temporary  vector is taken
        for(int i=0;i<matrix.size();i++){
            for(int j=0;j<matrix[0].size();j++){
                temp[i][j+1]=temp[i][j]+matrix[i][j]; // pre-computing the row sum 
            }
        }
        
        arr=temp;
    }
    
    int sumRegion(int row1, int col1, int row2, int col2) {
        int sum=0;
        for(int i=row1;i<=row2;i++){
            sum+=arr[i][col2+1]-arr[i][col1]; // appending the row sum with column constraints
        }
        return sum;
    }
};
Comments (0)