zoukankan      html  css  js  c++  java
  • 304. 二维区域和检索

    • 暴力穷举
    class NumMatrix {
    
        private int[][] matrix;
    
        public NumMatrix(int[][] matrix) {
            this.matrix = matrix;
        }
    
        public int sumRegion(int row1, int col1, int row2, int col2) {
            int sum = 0;
            for (int i = row1; i <= row2; i++) {
                for (int j = col1; j <= col2; j++) {
                    sum += matrix[i][j];
                }
            }
            return sum;
        }
    }
    
    • dp cache 递推公式
    class NumMatrix {
    
        private int[][] numMatrix;
    
        public NumMatrix(int[][] matrix) {
            if (matrix == null || matrix.length == 0) {
                numMatrix = new int[0][0];
                return;
            }
            numMatrix = new int[matrix.length][matrix[0].length];
            for (int i = 0; i < matrix.length; i++) {
                for (int j = 0; j < matrix[i].length; j++) {
                    if(i==0 && j == 0) {
                        numMatrix[i][j] = matrix[i][j];
                    } else if(i==0 && j != 0) {
                        numMatrix[i][j] = numMatrix[i][j-1] + matrix[i][j];
                    } else if (i!=0 && j == 0) {
                        numMatrix[i][j] = numMatrix[i-1][j] + matrix[i][j];
                    } else {
                        numMatrix[i][j] = numMatrix[i][j-1] + numMatrix[i-1][j] - numMatrix[i-1][j-1] + matrix[i][j];
                    }
                }
            }
        }
    
        public int sumRegion(int row1, int col1, int row2, int col2) {
            if (row1 == 0 && col1 == 0) {
                return numMatrix[row2][col2];
            } else if (row1 == 0) {
                return numMatrix[row2][col2] - numMatrix[row2][col1-1];
            } else if (col1 == 0) {
                return numMatrix[row2][col2] - numMatrix[row1-1][col2];
            } else {
                return numMatrix[row2][col2] - numMatrix[row2][col1-1] - numMatrix[row1-1][col2] + numMatrix[row1-1][col1-1];
            }
        }
    }
    
  • 相关阅读:
    OpenMP笔记(一)
    Ubuntu16.04编译OpenCV3.4.7
    Ubuntu16.04编译tensorflow的C++接口
    win10编译tensorflow C++接口
    Qt5学习笔记(1)-环境配置(win+64bit+VS2013)
    Qt creator中配置opencv win7 64bit
    MYSQL其他常用函数
    MySQL 8.0中的新增功能
    MySQL中的JSON函数(三)修改JSON的函数
    MySQL中的JSON函数(二)查询JSON函数
  • 原文地址:https://www.cnblogs.com/lasclocker/p/11337134.html
Copyright © 2011-2022 走看看