题目描述
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
题目地址
思路
由于数组是有序的,从左下角看,向上为递减,向右为递增,因此可以从左下角开始查找,当左下角元素比整数大时,上移,当左下角元素比整数小时,右移。
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)
作者:huangqiancun
出处:http://www.cnblogs.com/huangqiancun/
本博客若无特殊说明则由作者原创发布,欢迎转载,但请注明出处 :)