598. 范围求和 II

题目

给你一个 m x n 的矩阵 M ,初始化时所有的 0 和一个操作数组 op ,其中 ops[i] = [ai, bi] 意味着当所有的 0 <= x < ai0 <= y < bi 时, M[x][y] 应该加 1。

执行完所有操作后 ,计算并返回 矩阵中最大整数的个数

示例1:

1
2
3
输入: m = 3, n = 3,ops = [[2,2],[3,3]]
输出: 4
解释: M 中最大的整数是 2, 而且 M 中有4个值为2的元素。因此返回 4

示例2:

1
2
输入: m = 3, n = 3, ops = [[2,2],[3,3],[3,3],[3,3],[2,2],[3,3],[3,3],[3,3],[2,2],[3,3],[3,3],[3,3]]
输出: 4

示例3:

1
2
输入: m = 3, n = 3, ops = []
输出: 9

提示:

  • 1 <= m, n <= 4 * 104
  • 0 <= ops.length <= 104
  • ops[i].length == 2
  • 1 <= ai <= m
  • 1 <= bi <= n

解法

解法一:

Java

1
2
3
4
5
6
7
8
9
10
11
public int maxCount(int m, int n, int[][] ops) {
int min_row = 40000;
int min_col = 40000;
for (int[] op : ops) {
min_row = Math.min(min_row, op[0]);
min_col = Math.min(min_col, op[1]);
}
min_row = Math.min(min_row, m);
min_col = Math.min(min_col, n);
return min_row * min_col;
}
0%