对二维区域和检索 - 矩阵不可变 超时的改进

Posted z2529827226

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对二维区域和检索 - 矩阵不可变 超时的改进相关的知识,希望对你有一定的参考价值。


暴力法:
private
int[][] data; public NumMatrix(int[][] matrix) { data = matrix; } public int sumRegion(int row1, int col1, int row2, int col2) { int sum = 0; for (int r = row1; r <= row2; r++) { for (int c = col1; c <= col2; c++) { sum += data[r][c]; } } return sum; }

 

动规:
class
NumMatrix { private int[][] dp; public NumMatrix(int[][] matrix) { if (matrix.length == 0 || matrix[0].length == 0) return; dp = new int[matrix.length][matrix[0].length + 1]; for (int r = 0; r < matrix.length; r++) { for (int c = 0; c < matrix[0].length; c++) { dp[r][c + 1] = dp[r][c] + matrix[r][c]; } } } 将计算的过程分为两部分: public int sumRegion(int row1, int col1, int row2, int col2) { int sum = 0; for (int row = row1; row <= row2; row++) { sum += dp[row][col2 + 1] - dp[row][col1]; } return sum; } }

技术图片

以上是关于对二维区域和检索 - 矩阵不可变 超时的改进的主要内容,如果未能解决你的问题,请参考以下文章

304. 二维区域和检索 - 矩阵不可变

Leetcode——区域和检索 - 数组不可变 / 二维区域和检索 - 矩阵不可变 (前缀和)

力扣304(java)-二维区域和检索-矩阵不可变(中等)

LeetCode 0304. 二维区域和检索 - 矩阵不可变

304. 二维区域和检索 - 矩阵不可变(动态规划)

力扣刷题笔记--304 二维区域和检索 - 矩阵不可变 前缀和