码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2019-10-26 15:12:00      阅读:67      评论:0      收藏:0      [点我收藏+]

标签:data   ||   ++   public   text   img   ret   过程   ==   


暴力法:
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; } }

技术图片

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

标签:data   ||   ++   public   text   img   ret   过程   ==   

原文地址:https://www.cnblogs.com/z2529827226/p/11743047.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!