ধরুন আমাদের একটি m * n ম্যাট্রিক্স আছে যার নাম M এবং এটি সমস্ত 0 এর সাথে আরম্ভ করা হয়েছে এবং আমাদের বেশ কয়েকটি আপডেট অপারেশনও রয়েছে। এখন, অপারেশনগুলি একটি 2D অ্যারে দ্বারা প্রতিনিধিত্ব করা হয়, এবং প্রতিটি ক্রিয়াকলাপ দুটি ধনাত্মক পূর্ণসংখ্যা x এবং y সহ একটি অ্যারে দ্বারা প্রতিনিধিত্ব করা হয়, এর মানে হল 0 থেকে a - এর মধ্যে থাকা সমস্ত মানের জন্য M[i][j] যোগ করা উচিত। 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 :=m, minC :=n
-
অপস ইন অপস অ্যারে
-
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