2、二维数组中的查找
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样一个二维数组和一个整数,判断数组中是否含有该整数。
由于9>7,而9所在列下方的元素都大于9,所以剔除9所在的列
由于8>7,所以,同上剔除8所在的列
由于2小于7,而2所在行左边的元素均小于2,所以,剔除2所在的行
由于4<7,剔除4所在的行
lis=[[1,2,8,9], [2,4,9,12], [4,7,10,13], [6,8,11,15]] target=15 rows=len(lis)-1 #数组的行数 cols=len(lis[0])-1 #数组的列数 def findNum(lis,target): i = 0 # (i,j)标记最右上角元素的坐标 j = cols while i<=rows and j>=0: temp = lis[i][j] if temp == target: return True elif temp>target: j=j-1 elif temp<target: i=i+1 return False print(findNum(lis,target))