假设我们有一个2D矩阵,其中每一行和每一列都以不降序排列,那么我们必须检查给定的目标是否存在于其中。
所以,如果输入像
2 | 4 | 30 |
3 | 4 | 31 |
6 | 6 | 32 |
目标为31,则输出为True
为了解决这个问题,我们将遵循以下步骤-
col:=矩阵的列大小-1
对于范围从0到矩阵行大小的i,执行
返回True
col:= col-1
而matrix [i,col]> target和col> = 0,则执行
如果matrix [i,col]与目标相同,则
返回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 = 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