ধরুন আমাদের একটি 2D ম্যাট্রিক্স আছে যেখানে প্রতিটি সারি ক্রমবর্ধমান ক্রমে সাজানো হয়েছে। আমাদের প্রতিটি সারিতে বিদ্যমান ক্ষুদ্রতম সংখ্যাটি খুঁজে বের করতে হবে। যদি এমন কোন ফলাফল না থাকে, তাহলে −1 ফেরত দিন।
সুতরাং, যদি ইনপুট মত হয়
2 | 3 | 5 |
5 | 10 | 10 |
1 | 3 | 5 |
তাহলে আউটপুট হবে 5
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
যদি ম্যাট্রিক্স খালি হয়, তাহলে
-
ফিরুন −1
-
-
প্রথম :=ম্যাট্রিক্সের প্রথম সারি থেকে একটি নতুন সেট
-
ম্যাট্রিক্সের প্রতিটি সারির জন্য, করুন
-
first :=প্রথমে সারির উপাদানগুলির একটি সেটকে ছেদ করুন
-
যদি প্রথমে খালি হয়, তাহলে
-
ফিরুন −1
-
-
-
সর্বনিম্ন প্রথম ফেরত দিন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution: def solve(self, matrix): if not matrix: return -1 first = set(matrix[0]) for row in matrix: first &= set(row) if not first: return -1 return min(first) ob1 = Solution() matrix = [ [2, 3, 5], [5, 10, 10], [1, 3, 5] ] print(ob1.solve(matrix))
ইনপুট
matrix = [ [2, 3, 5], [5, 10, 10], [1, 3, 5] ]
আউটপুট
5