LeetCode刷题记录 |
文章目录
- 📜题目描述
- 💡解题思路
- ⌨C++代码
📜题目描述
给你一个
m x n
的矩阵 M ,初始化时所有的 0 和一个操作数组 op ,其中ops[i] = [ai, bi]
意味着当所有的0 <= x < ai
和0 <= y < bi
时,M[x][y
] 应该加 1。
在 执行完所有操作后 ,计算并返回 矩阵中最大整数的个数 。
示例1
输入: m = 3, n = 3,ops = [[2,2],[3,3]]
输出: 4
解释: M 中最大的整数是 2, 而且 M 中有4个值为2的元素。因此返回 4。
示例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:
输入: m = 3, n = 3, ops = []
输出: 9
提示:
- 1 <= m, n <= 4 * 10^4
- 0 <= ops.length <= 10^4
- ops[i].length == 2
- 1 <= ai <= m
- 1 <= bi <= n
💡解题思路
注意:最后的区域长度 最大也不过m
区域宽度 最大也不过n
所以,直接把最小值设置为m和n 从而去找最小的a和b
得到的就是最后的区域长度和区域宽度
返回乘积即可
验证:如果ops数组为空,那么直接返回区域就是m*n 成立!