题目描述
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
题目地址
思路
由于数组是有序的,从左下角看,向上为递减,向右为递增,因此可以从左下角开始查找,当左下角元素比整数大时,上移,当左下角元素比整数小时,右移。
Python
# -*- coding:utf-8 -*-
class Solution:
# array 二维列表
def Find(self,target, array):
if not array:
return False
rows, cols = len(array), len(array[0])
row, col = rows-1, 0
while row >= 0 and col < cols:
if array[row][col] == target:
return True
elif array[row][col] > target:
row -= 1
else:
col += 1
return False if __name__ == '__main__':
result = Solution().Find(5,[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]])
print(result)