LeetCode_304二维区域和检索——矩阵不可变

给定一个二维矩阵,计算其子矩形范围内元素的总和,该子矩阵的左上角为 (row1, col1) ,右下角为 (row2, col2)。
在这里插入图片描述

class NumMatrix {
    int[][] sumMatrix;
    public NumMatrix(int[][] matrix) {
        if(matrix!=null && matrix.length>0 && matrix[0].length>0){
            int row = matrix.length;
            int col = matrix[0].length;
            sumMatrix = new int[row][col+1];
            for(int i=0;i<row;i++){
                for(int j=0;j<col;j++){
                    sumMatrix[i][j+1] = sumMatrix[i][j]+matrix[i][j]; 
                }
            }
        }
    }
    
    public int sumRegion(int row1, int col1, int row2, int col2) {
        int res = 0;
        for(int i=row1;i<=row2;i++){
            res = res+sumMatrix[i][col2+1]-sumMatrix[i][col1];
        }
        return res;
    }
}

/**
 * Your NumMatrix object will be instantiated and called as such:
 * NumMatrix obj = new NumMatrix(matrix);
 * int param_1 = obj.sumRegion(row1,col1,row2,col2);
 */
发布了250 篇原创文章 · 获赞 0 · 访问量 1277

猜你喜欢

转载自blog.csdn.net/qq_36198826/article/details/103792351