一、细碎算法
1、数组:一个二维数组,每一行按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序, 判断一个整数是否包含着在这个数组中?
可以采用删减法来减少查找的范围,从左下角或者右上角的地方开始,寻找某个数,若从右上角开始寻找,则当数组中的这个数大于寻找的数时,应该列向值小的一方移动,当小于时,应该向行大于的方向移动:如下,见offer面试3
def find(matrix,target): if matrix==None or len(matrix)==0: return 0 rows=len(matrix) cols=len(matrix[0]) row,col=0,cols-1 count=0 while row<=rows-1 and col>=0: if matrix[row][col]>target: col-=1 elif matrix[row][col]<target: row+=1 else: count+=1 col-=1 return count