二维数组中的查找
方法一:暴力法
class Solution:
def findNumberIn2DArray(self, matrix: List[List[int]], target: int) -> bool:
for i in range(len(matrix)):
for j in range(len(matrix[0])):
if matrix[i][j]==target:
return True
return False
方法二:在有序矩阵中(从左往右越来越大,从上往下越来越大)
可以从左上或者右下开始一次查找,比如左上,大了就往下走,小了往左走,可以利用排序性缩小搜索范围
class Solution:
def findNumberIn2DArray(self, matrix: List[List[int]], target: int) -> bool:
if not matrix or not matrix[0]:
return False
a,b=len(matrix),len(matrix[0])
m,n=0,b-1
while m<len(matrix) and n>=0:
if matrix[m][n]==target:
return True
if matrix[m][n]<target:
m=m+1
else:
n=n-1
return False