给定一个m * n 的全零矩阵M,以及一些更新操作。
操作由2D数组表示,并且每个操作由具有两个正整数a和b的数组表示,对于一个操作[a,b],这意味着M [i] [j] 会在所有0 <= i <a且0 <= j <b 的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。
思路:重叠最多部分拥有最大整数,因此找出最小的重叠行和重叠列相乘即可
class Solution {
public:
/**
* @param m: an integer
* @param n: an integer
* @param ops: List[List[int]]
* @return: return an integer
*/
int m_m;
int m_n;
int maxCount(int m, int n, vector<vector<int>> &ops) {
// write your code here
int rmin=m;
int cmin=n;
for (auto result : ops) {
/* code */
rmin=min(result[0],rmin);
cmin=min(result[1],cmin);
}
return rmin*cmin;
}
};