题目描述——二维数组中的查找
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
解题思路
从某个角开始进行比较,对行列进行排除
代码实现
1 def Find(matrix, rows, colums, number): 2 found = False 3 if(matrix is not None and rows>0 and colums>0): 4 row = 0 5 columns = colums - 1 #从右上角开始 6 while(row<rows and columns>=0): 7 if(matrix[row*columns+columns] == numbers): 8 found = True 9 break 10 else if(matrix[row*columns+columns] > number): 11 #右上角大于目标数,则其所在列都不符合(因为是从右上角开始找的,所以该元素所在列之上的元素已经考虑过了) 12 columns -= 1 13 else: 14 #右上角元素小于目标数,右上角元素为该行最大值,则去掉该行 15 row +=1 16 return found