ধরুন আমাদের একটি 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