题目:
在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
思路:从数组右上角开始进行比较,当前遍历到的值与目标值相等时,返回True;当前遍历到的值比目标值小时往下跳一行,否则往左跳一列。
代码:
class Solution:
def findNumberIn2DArray(self, matrix: List[List[int]], target: int) -> bool:
n=len(matrix)
if n==0:return False
m=len(matrix[0])
row=0
col=m-1
while row<n and col>-1:
if target==matrix[row][col]:return True
if target<matrix[row][col]:
col-=1
else:
row+=1
return False