मान लीजिए हमारे पास एक 2D मैट्रिक्स है, जहां प्रत्येक पंक्ति और कॉलम नॉन-डिक्रीजिंग क्रम में सॉर्टेड है, हमें जांचना है कि दिया गया टार्गेट इसके अंदर मौजूद है या नहीं।
उदाहरण के लिए, यदि इनपुट मैट्रिक्स है:
| 2 | 4 | 30 |
| 3 | 4 | 31 |
| 6 | 6 | 32 |
और टार्गेट = 31, तो आउटपुट True होगा।
समाधान दृष्टिकोण
इसे हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे:
col := मैट्रिक्स के कॉलम आकार - 1iको 0 से पंक्ति आकार तक:- जब तक
matrix[i][col] > targetऔरcol >= 0:col := col - 1
- यदि
matrix[i][col] == target:Trueलौटाएं
- जब तक
Falseलौटाएं
उदाहरण कोड
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 -= 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