二维数组的查找(python)

题目描述:

在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数

思路:

因为二维数组横向和竖向都是递增的,自然,array[0][0]最小,array[-1][-1]最大,于是想到可以直接比较每组最后一个元素,这样如果这个数大于target,那么target就会在这个数左边,就将col左移一位,继续循环至遇到一个小于target数后,左边不可能再出现target了,那就将lin下移一位,比较下一行里最大的元素,依次循环。

class Solution:
    def Find(self, target, array):
        # write code here
        lin =0
        col = len(array[0])-1
        while col>=0 and lin<len(array):
            if target == array[lin][col]:
                return True
            elif target < array[lin][col]:
                col -= 1
            else:
                lin += 1
        return False

猜你喜欢

转载自blog.csdn.net/flannery023/article/details/80877641
今日推荐