4.算法

一、细碎算法

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

猜你喜欢

转载自www.cnblogs.com/luoyw/p/10581261.html