返回介绍

solution / 0500-0599 / 0598.Range Addition II / README

发布于 2024-06-17 01:03:36 字数 2590 浏览 0 评论 0 收藏 0

598. 区间加法 II

English Version

题目描述

给你一个 m x n 的矩阵 M 和一个操作数组 op 。矩阵初始化时所有的单元格都为 0ops[i] = [ai, bi] 意味着当所有的 0 <= x < ai0 <= 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 * 104
  • 0 <= ops.length <= 104
  • ops[i].length == 2
  • 1 <= ai <= m
  • 1 <= bi <= n

解法

方法一

class Solution:
  def maxCount(self, m: int, n: int, ops: List[List[int]]) -> int:
    for a, b in ops:
      m = min(m, a)
      n = min(n, b)
    return m * n
class Solution {
  public int maxCount(int m, int n, int[][] ops) {
    for (int[] op : ops) {
      m = Math.min(m, op[0]);
      n = Math.min(n, op[1]);
    }
    return m * n;
  }
}
class Solution {
public:
  int maxCount(int m, int n, vector<vector<int>>& ops) {
    for (auto op : ops) {
      m = min(m, op[0]);
      n = min(n, op[1]);
    }
    return m * n;
  }
};
func maxCount(m int, n int, ops [][]int) int {
  for _, op := range ops {
    m = min(m, op[0])
    n = min(n, op[1])
  }
  return m * n
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文