剑指Offer(Python多种思路实现):二维数组中的查找
面试4题:
题目:
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
解题代码一:选取右上角为起始点。
def find(target, array):
row = 0
col = len(array[0]) - 1
while col >= 0 and row <= len(array)-1:
if array[row][col] > target:
col -= 1
elif array[row][col] < target:
row += 1
else:
return True
return False
解题代码二:更为简洁的方法。
def searchMatrix(self, matrix, target):
j = -1
for row in matrix:
while j + len(row) and row[j] > target:
j -= 1
if row[j] == target:
return True
return False