友情支持

如果您觉得这个笔记对您有所帮助,看在D瓜哥码这么多字的辛苦上,请友情支持一下,D瓜哥感激不尽,😜

支付宝

微信

有些打赏的朋友希望可以加个好友,欢迎关注D 瓜哥的微信公众号,这样就可以通过公众号的回复直接给我发信息。

wx jikerizhi

公众号的微信号是: jikerizhi因为众所周知的原因,有时图片加载不出来。 如果图片加载不出来可以直接通过搜索微信号来查找我的公众号。

598. 区间加法 II

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

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

示例 1:

0598 01
输入: 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 * 104

  • 0 <= ops.length <= 104

  • ops[i].length == 2

  • 1 <= a~i~ <= m

  • 1 <= b~i~ <= n

思路分析

以为是矩阵计算模拟,要一步一步模拟来搞。没想到是脑筋急转弯:求矩阵重叠部分面积即可!

  • 一刷

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
/**
 * @author D瓜哥 · https://www.diguage.com
 * @since 2026-03-30 20:53:49
 */
public int maxCount(int m, int n, int[][] ops) {
  for (int[] op : ops) {
    m = Integer.min(m, op[0]);
    n = Integer.min(n, op[1]);
  }
  return m * n;
}