题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。数组
实现思路:因为行列都为递增排序,因此能够从左下角开始比较查询,若目标值target大于该数,则将查询位置右移,不然上移,便可达到查询目的。函数
代码:spa
1 #_*_coding:utf-8_*_ 2 3 class Solution: 4 # array 二维列表 5 def Find(self, target, array): 6 # write code here 7 m = len(array)-1 #当前行数,从零开始 8 n = len(array[0])-1 #获取二维列表的列数 9 i = 0 #当前列数 10 while m>=0 and i<=n: 11 if array[m][i] > target: 12 m = m - 1 13 print m,i 14 elif array[m][i] < target: 15 i = i + 1 16 else: 17 return True 18 return False 19 20 solution = Solution() 21 array = [[1,2,3],[4,5,6],[7,8,9],[10,11,12]] 22 target = 20 23 print solution.Find(target,array)