剑指offer,page44
题目:一个矩阵,从左到右和从上到下都是增加的,判断给定的数是否在矩阵中
分析:如果从左上角开始看,发现比target小,则只能说明target在该位置的下方或者右方;如果从右上角开始看,发现比target大,则可以直接排除一列,往下走,如果发现比target小,则可以排除一整行。
def findNum(matrix,num):
rows = len(matrix)
cols = len(matrix[0])
# go up, go right
for row in range(rows-1,-1,-1):
if matrix[row][0]>num:
continue
for col in range(0,cols):
if matrix[row][col]<num:
continue
for new_row in range(0,row+1):
if matrix[new_row][col]==num:
return True
return False
matrix = [[1,2,3],[4,5,6]]
num = 9
print(findNum(matrix,num))