C++ 中的 Range Addition II
假设我们有一个称为 M 的 m * n 矩阵,且该矩阵已全部初始化为 0,并且我们还有几个更新操作。现在,操作通过二维数组表示,且每个操作都通过具有两个正整数 x 和 y 的数组表示,这意味着所有介于 0 到 a - 1 之间的 i 值以及所有介于 0 到 b - 1 之间的 j 值,M[i][j] 都应加 1。我们在执行所有操作后必须找出矩阵中最大整数的数目。
所以,如果输入为:m = 3,n = 3,operations = [[2,2],[3,3]],那么输出将为 4,
最初的矩阵如下
| 0 | 0 | 0 |
| 0 | 0 | 0 |
| 0 | 0 | 0 |
执行 [2,2] 后,我们将得到
| 1 | 1 | 0 |
| 1 | 1 | 0 |
| 0 | 0 | 0 |
执行 [2,2] 后,我们将得到
| 2 | 2 | 1 |
| 2 | 2 | 1 |
| 1 | 1 | 1 |
为了解决这个问题,我们将遵循以下步骤 −
minR := m,minC := n
对于 ops 数组中的 op
minR := minR 和 op[0] 的最小值
minC := minC 和 op[1] 的最小值
返回 minR * minC
示例
让我们看看以下实现,以便获得更深入的了解 −
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
int maxCount(int m, int n, const vector<vector<int>>& ops) {
int minR = m;
int minC = n;
for (const auto& op : ops){
minR = min(minR, op[0]);
minC = min(minC, op[1]);
}
return minR * minC;
}
};
main(){
Solution ob;
vector<vector<int>> v = {{2,2},{3,3}};
cout << (ob.maxCount(3,3,v));
}输入
3,3,{{2,2},{3,3}}输出
4
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP