मान लीजिए कि हमारे पास एक m * n मैट्रिक्स है जिसे M कहा जाता है और यह सभी 0 के साथ आरंभिक है और हमारे पास कई अपडेट ऑपरेशन भी हैं। अब, संचालन को एक 2D सरणी द्वारा दर्शाया जाता है, और प्रत्येक ऑपरेशन को दो धनात्मक पूर्णांक x और y के साथ एक सरणी द्वारा दर्शाया जाता है, इसका अर्थ है कि M[i][j] को 0 से a तक के सभी मानों के लिए एक से जोड़ा जाना चाहिए - 1 और सभी मान j 0 से b - 1 की श्रेणी में हैं। हमें सभी संक्रियाओं को करने के बाद मैट्रिक्स में अधिकतम पूर्णांक की संख्या की गणना करनी है।
इसलिए, यदि इनपुट m =3, n =3 और संचालन =[[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 :=न्यूनतम 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