LeetCode 598. 范围求和 II
发布日期:2021-07-01 03:23:57 浏览次数:2 分类:技术文章

本文共 942 字,大约阅读时间需要 3 分钟。

1. 题目

给定一个初始元素全部为 0,大小为 m*n 的矩阵 M 以及在 M 上的一系列更新操作。

操作用二维数组表示,其中的每个操作用一个含有两个正整数 a 和 b 的数组表示,含义是将所有符合 0 <= i < a 以及 0 <= j < b 的元素 M[i][j] 的值都增加 1

在执行给定的一系列操作后,你需要返回矩阵中含有最大整数的元素个数

示例 1:输入: m = 3, n = 3operations = [[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。注意:m 和 n 的范围是 [1,40000]。a 的范围是 [1,m],b 的范围是 [1,n]。操作数目不超过 10000。

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/range-addition-ii

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 取最小的两个坐标,其左上角就是被加1次数最多的
class Solution {
public: int maxCount(int m, int n, vector
>& ops) {
if(ops.empty()) return m*n; int r = INT_MAX, c = INT_MAX; for(auto& op : ops) {
r = min(r, op[0]); c = min(c, op[1]); } return r*c; }};

24 ms 10.3 MB

转载地址:https://michael.blog.csdn.net/article/details/105719055 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:LeetCode 599. 两个列表的最小索引总和(哈希map)
下一篇:LeetCode 566. 重塑矩阵

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月30日 23时20分18秒