题目:在一个二维数组中(每一个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。数组
思路:本题中的二维数组从左到右,从上到下依次递增,即每一行的最后一个数字为最大,每一列的最下数字为最大。函数
在查找过程当中总共分为两种状况:blog
一、查找数字小于比较数字,说明查找数字在比较数字的左边排序
二、查找数字大于比较数字,说明查找数字在比较数字的下边get
以查找7为例:io
代码:class
import timeclass Solution: def find(self,target,array): ''' :param target: 查找目标数字 :param array: 传入列表 :return: 0/1 ''' arrlen = len(array)#列表长度,肯定行数 col = len(array[0])-1#肯定一行中最大列数 if arrlen>0 and col>1:#判断矩阵 row = 0 while row <arrlen and col >=0:#循环终止条件 if array[row][col] <target:#若是目标数大于矩阵中的数 row = row+1 elif array[row][col] >target: col = col - 1 else: return True return False else: return False