Leetcode194: Range Sum Query 2D - Immutable
2015-12-14 17:09
423 查看
Given a 2D matrix matrix,
find the sum of the elements inside the rectangle defined by its upper left corner (row1, col1)
and lower right corner (row2, col2).
The above rectangle (with the red border) is defined by (row1, col1) = (2, 1) and (row2, col2) = (4, 3), which contains sum = 8.
Example:
Note:
You may assume that the matrix does not change.
There are many calls to sumRegion function.
You may assume that row1 ≤ row2 and col1 ≤ col2.
其实就是积分图.
find the sum of the elements inside the rectangle defined by its upper left corner (row1, col1)
and lower right corner (row2, col2).
The above rectangle (with the red border) is defined by (row1, col1) = (2, 1) and (row2, col2) = (4, 3), which contains sum = 8.
Example:
Given matrix = [ [3, 0, 1, 4, 2], [5, 6, 3, 2, 1], [1, 2, 0, 1, 5], [4, 1, 0, 1, 7], [1, 0, 3, 0, 5] ] sumRegion(2, 1, 4, 3) -> 8 sumRegion(1, 1, 2, 2) -> 11 sumRegion(1, 2, 2, 4) -> 12
Note:
You may assume that the matrix does not change.
There are many calls to sumRegion function.
You may assume that row1 ≤ row2 and col1 ≤ col2.
其实就是积分图.
class NumMatrix { private: int **sum; public: NumMatrix(vector<vector<int>> &matrix) { int m = matrix.size(); if(m == 0) return; int n = matrix[0].size(); if(n == 0) return; sum = new int*[m+1]; for(int i = 0; i < m+1; i++) { sum[i] = new int[n+1]; sum[i][0] = 0; } for(int i = 0; i < n+1; i++) { sum[0][i] = 0; } for(int i = 1; i < m+1; i++) { for(int j = 1; j < n+1; j++) { sum[i][j] = sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1]+matrix[i-1][j-1]; } } } int sumRegion(int row1, int col1, int row2, int col2) { return sum[row2+1][col2+1] + sum[row1][col1] - sum[row1][col2+1] - sum[row2+1][col1]; } }; // Your NumMatrix object will be instantiated and called as such: // NumMatrix numMatrix(matrix); // numMatrix.sumRegion(0, 1, 2, 3); // numMatrix.sumRegion(1, 2, 3, 4);
相关文章推荐
- openstack devstack tox ValueError: need more than 1 value to unpack
- iOS开发备忘录:自定义UINavigationBar背景图片和Back按钮
- uilabel的字体不一致
- LeetCode 300 Longest Increasing Subsequence
- django queryset values&values_list
- easyui dialog 引入jsp页面赋值
- Leetcode193: Range Sum Query - Immutable
- Android Stuido 导出 APK
- [ERROR] The goal you specified requires a project to execute but there is no POM in this directory
- Storm 提交拓扑后UI中spout、bolt的Num都显示为0
- rpmbuild线上实战
- 为嵌套在左右滑动的UIScrollview上的UITableView增加滑动删除
- iOS 十六进制的颜色值转换为UIColor
- iOS UITableView分割线颜色,长度自定义
- vs2010出现如下错误: VCEnd" exited with code 1.
- 救济金发放(The Dole Queue,UVa33)
- 蓝牙的漏洞、威胁与对策
- UIKIT的简介
- 115.Distinct Subsequences
- 【Android实现自定义UI-ViewGroup】