ধরুন আমাদের একটি 2D ম্যাট্রিক্স আছে, যেখানে প্রতিটি সারি এবং কলাম অ-হ্রাস ক্রমে সাজানো হয়েছে, আমাদের পরীক্ষা করতে হবে যে প্রদত্ত লক্ষ্য এর ভিতরে উপস্থিত আছে কি না।
সুতরাং, যদি ইনপুট মত হয়
2 | 4 | 30 |
3 | 4 | 31 |
6 | 6 | 32 |
এবং লক্ষ্য =31, তাহলে আউটপুট হবে True
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- col :=ম্যাট্রিক্সের কলামের আকার - 1
- ম্যাট্রিক্সের 0 থেকে সারির আকারের মধ্যে,
- করুন
- যখন ম্যাট্রিক্স[i, col]> টার্গেট এবং col>=0, do
- col :=col - 1
- যদি ম্যাট্রিক্স[i, col] টার্গেটের মতো হয়, তাহলে
- সত্য ফেরান
- যখন ম্যাট্রিক্স[i, col]> টার্গেট এবং col>=0, do
- মিথ্যে ফেরত দিন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution: def solve(self, matrix, target): col = len(matrix[0]) - 1 for i in range(len(matrix)): while matrix[i][col] > target and col >= 0: col = col - 1 if matrix[i][col] == target: return True return False ob = Solution() matrix = [ [2, 4, 30], [3, 4, 31], [6, 6, 32] ] target = 31 print(ob.solve(matrix, target))
ইনপুট
matrix = [ [2, 4, 30], [3, 4, 31], [6, 6, 32]] target = 31
আউটপুট
True