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