给定一个初始元素全部为 0,大小为 m*n 的矩阵 M 以及在 M 上的一系列更新操作。
操作用二维数组表示,其中的每个操作用一个含有两个正整数 a 和 b 的数组表示,含义是将所有符合 0 <= i < a 以及 0 <= j < b 的元素 M[i][j] 的值都增加 1。
在执行给定的一系列操作后,你需要返回矩阵中含有最大整数的元素个数。
示例 1:
输入:
m = 3, n = 3
operations = [[2,2],[3,3]]
输出: 4
解释:
初始状态, M =
[[0, 0, 0],
[0, 0, 0],
[0, 0, 0]]执行完操作 [2,2] 后, M =
[[1, 1, 0],
[1, 1, 0],
[0, 0, 0]]执行完操作 [3,3] 后, M =
[[2, 2, 1],
[2, 2, 1],
[1, 1, 1]]M 中最大的整数是 2, 而且 M 中有4个值为2的元素。因此返回 4。
方法一:观察
看上去有点吓人,仔细思考下这句话:将所有符合 0 <= i < a 以及 0 <= j < b 的元素 M[i][j] 的值都增加 1 。诶?这意思是不是说结果的范围边界始终在 [0, min_operations] 之间!那么既然如此我们可以很迅速的给出如下代码:
public int maxCount(int m, int n, int[][] ops) {
int minx = m, miny = n;
for (int[] op : ops) {
minx = Math.min(minx, op[0]);
miny = Math.min(miny, op[1]);
}
return minx * miny;
}
最后,祝 EDG 夺冠!
为众人抱薪者,不可使其冻毙于风雪!


![LeetCode-每日一题 598. 范围求和 II [Java实现] [极速] [极简] LeetCode-每日一题 598. 范围求和 II [Java实现] [极速] [极简]](http://www.mshxw.com/aiimages/31/439681.png)
