题目: 在一个二维数组中,每一行都是按照从左到右递增的顺序排序,每一列都按照从上到下递增的舒徐排序。 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 解题思路:从右上角或者左下角开始,本题是从右上角 1. 如果该数字大于要查找的数字,则列数-1. 2. 别的如果该数字小于要查找的数字,则行数+1. 3. 该数字等于要查找的数字,则查找过程结束
def find_num(list, num):
"""
:param list: 数组
:param num: 查找的数字
:return: num
"""
row, colum = len(list), len(list[0]) # 数组的维度
row = row - 1 # 行
colum = colum - 1 #列
n = 0
while n<=row and colum>=0:
if list[n][colum]>num:
colum -= 1
elif list[n][colum]<num:
n += 1
else:
return list[n][colum]
return False
if __name__=="__main__":
list = [[1,2,8,9], [2,4,9,12], [4,7,10,13], [6,8,11,15]]
num = 7
result = find_num(list, num)
print(result)