在Python中搜索2D Matrix II
假设我们有一个mxn矩阵。我们必须编写一种有效的算法来搜索该矩阵中的值。该矩阵具有以下属性-
每行中的整数按从左到右的升序排列。
每列中的整数按从上到下的升序排列。
所以如果矩阵像-
如果目标为5,则返回true,如果目标为20,则返回false
为了解决这个问题,我们将遵循以下步骤-
len:=列数,c1:=0,c2:=len–1
虽然真实
如果matrix[c1,c2]=目标,则返回true
否则,如果matrix[c1,c2]>目标,则c2:=c2–1,继续
c1:=c1+1
如果c1>=行计数或c2<0,则返回false
返回假
让我们看下面的实现以更好地理解-
示例
class Solution: def searchMatrix(self, matrix, target): try: length = len(matrix[0]) counter1, counter2 = 0, length-1 while True: if matrix[counter1][counter2] == target: return True elif matrix[counter1][counter2]>target: counter2-=1 continue counter1 = counter1 + 1 if counter1 >= len(matrix) or counter2<0: return False except: return False ob1 = Solution()print(ob1.searchMatrix([[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], 5))
输入值
[[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]] 5
输出结果
True