题目
在一个二维数组中,每一行都是从左到右递增,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样一个二维数组和一个整数,判断该数组是否包含该整数。
Python题解
#encoding=utf-8
def find_num_in_matrix(matrix, rows, cols, target):
found = False
if matrix is not None and rows > 0 and cols > 0:
cur_row, cur_col = 0, cols - 1
while cur_row < rows and cur_col >= 0:
cur_num = matrix[cur_row][cur_col]
if cur_num == target:
found = True
# print cur_row, cur_col, cur_num
break
elif cur_num < target:
cur_row += 1
else:
cur_col -= 1
return found
if __name__ == '__main__':
matrix = [
[1, 2, 8, 9],
[2, 4, 9, 12],
[4, 7, 10, 13],
[6, 8, 11, 15],
]
target_1 = 7
target_2 = 100
print find_num_in_matrix(matrix, 4, 4, target_1)
print find_num_in_matrix(matrix, 4, 4, target_2)