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];
            }
        }
    }
    
  • 相关阅读:
    POJ2785-4 Values whose Sum is 0
    Codeforce 9C
    Codeforces 797C -Minimal string
    程序员自我修养
    异或
    Socket网络编程
    java编写本月日历
    PreparedStatement的用法
    项目导入时报错:The import javax.servlet.http.HttpServletRequest cannot be resolved 解决方法
    Dell灵越 5559笔记本安装固态硬盘 BIOS设置
  • 原文地址:https://www.cnblogs.com/lasclocker/p/11337134.html
Copyright © 2011-2022 走看看