ধরুন আমাদের একটি ম্যাট্রিক্স ম্যাট আছে যেখানে প্রতিটি সারি অ-হ্রাস না হওয়া ক্রমে সাজানো হয়েছে, আমাদের সব সারিতে সবচেয়ে ছোট সাধারণ উপাদান খুঁজে বের করতে হবে। যদি কোন সাধারণ উপাদান না থাকে, তাহলে -1 রিটার্ন করুন। তাই ম্যাট্রিক্স যদি −
এর মত হয়1 | 2 | 3 | 4 | ৷5 |
2 | 4 | ৷5 | 8 | 10 |
3 | 5 | 7 | 9 | 11 |
1 | 3 | 5 | 7 | 9 |
আউটপুট হবে 5
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
একটি মানচিত্র সংজ্ঞায়িত করুন m, n :=ম্যাট্রিক্সের সারি গণনা,
-
যদি n 0 না হয়, তাহলে x =কলামের আকার, অন্যথায় 0
-
0 থেকে n – 1
রেঞ্জের i জন্য-
j এর জন্য 0 থেকে x – 1
পরিসরে-
যদি m[mat[i, j]] + 1 =i + 1 হয়, তাহলে m[mat[i, j]] 1 দ্বারা বাড়ান
-
-
-
প্রতিটি কী-মানের জোড়ার জন্য i
-
যদি i-এর মান n হয়, তাহলে i
-এর কী ফেরত দিন
-
-
রিটার্ন -1
উদাহরণ (C++)
আসুন আরও ভালোভাবে বোঝার জন্য নিচের বাস্তবায়ন দেখি −
#includenamespace ব্যবহার করে std;class Solution {public:int smallestCommonElement(vector >&mat) { মানচিত্র m; int n =mat.size(); int x =n? mat[0].size():0; for(int i =0; i ::পুনরাবৃত্তিকারী এটি =m.begin(); while(it !=m.end()){ if(it->সেকেন্ড ==n){ রিটার্ন it->first; } এটা++; } রিটার্ন -1; }};প্রধান(){ ভেক্টর<ভেক্টর > v ={{1,2,3,4,5},{2,4,5,8,10},{3,5,7,9, 11},{1,3,5,7,9}}; সমাধান ob; cout <<(ob.smallestCommonElement(v));}
ইনপুট
<পূর্ব>[[1,2,3,4,5],[2,4,5,8,10],[3,5,7,9,11],[1,3,5,7,9 ]]আউটপুট
5