12行代码AC-Leecode 598. 范围求和 II——Leecode每日一题系列
今天是堅(jiān)持每日一題打卡的第十二天
題目鏈接:https://leetcode-cn.com/problems/range-addition-ii/
題解匯總:https://zhanglong.blog.csdn.net/article/details/121071779
題目描述
給定一個(gè)初始元素全部為 0,大小為 m*n 的矩陣 M 以及在 M 上的一系列更新操作。
操作用二維數(shù)組表示,其中的每個(gè)操作用一個(gè)含有兩個(gè)正整數(shù) a 和 b 的數(shù)組表示,含義是將所有符合 0 <= i < a 以及 0 <= j < b 的元素 M[i][j] 的值都增加 1。
在執(zhí)行給定的一系列操作后,你需要返回矩陣中含有最大整數(shù)的元素個(gè)數(shù)。
示例 1:
輸入:
m = 3, n = 3
operations = [[2,2],[3,3]]
輸出: 4
解釋:
初始狀態(tài), M =
[[0, 0, 0],
[0, 0, 0],
[0, 0, 0]]
執(zhí)行完操作 [2,2] 后, M =
[[1, 1, 0],
[1, 1, 0],
[0, 0, 0]]
執(zhí)行完操作 [3,3] 后, M =
[[2, 2, 1],
[2, 2, 1],
[1, 1, 1]]
M 中最大的整數(shù)是 2, 而且 M 中有4個(gè)值為2的元素。因此返回 4。
注意:
m 和 n 的范圍是 [1,40000]。
a 的范圍是 [1,m],b 的范圍是 [1,n]。
操作數(shù)目不超過(guò) 10000。
仔細(xì)觀察發(fā)現(xiàn),值的增加一定是從[0,0] - [row, col],因此遍歷數(shù)組,找到行和列的最小值,相乘即可。
注意:如果數(shù)組為空,則輸出m*n
class Solution { public:int maxCount(int m, int n, vector<vector<int>>& ops) {if (ops.empty()) return m * n;int min_row = 0x3fffffff, min_col = 0x3fffffff;for (int i = 0; i < ops.size(); i++) {min_row = min(min_row, ops[i][0]);min_col = min(min_col, ops[i][1]);}return min_row * min_col;} };
總結(jié)
以上是生活随笔為你收集整理的12行代码AC-Leecode 598. 范围求和 II——Leecode每日一题系列的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Leecode 268. 丢失的数字——
- 下一篇: 18行代码AC-Leecode 299.