मान लीजिए कि हमारे पास एक 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