题目
分析
因为二维数组中每一个坐标为i,j的数,比它大的在下方,比它小的在左边。相当于二分查找中的mid值。所以 从右上角开始和target进行对比。
当target比 i,j小的时候向左前进一步
当target比i,j大的时候向下前进一步
python代码
class Solution:
# array 二维列表
def Find(self, target, array):
# write code here
if not array:return False
if not array[0]: return False
i = 0
j = len(array)-1
if target>array[-1][-1]:
return False
while j>=0 and i<len(array):
if array[i][j]==target:
return True
elif array[i][j]>target:
j-=1
else:
i+=1
return False