美文网首页
剑指Offer--1,二维数组查找

剑指Offer--1,二维数组查找

作者: lazydecoder | 来源:发表于2019-04-05 15:17 被阅读0次

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

    分析

    [[1,2,8,9],
    [2,4,9,12],
    [4,7,10,13],
    [6,8,11,15]]
    形如上面的二维数组,可以发现最右上角的点最为特殊,如果它大于target,则最后一列一定全大于target,故不用考虑,如果它小于target,则第一行全部小于target,也不用考虑
    因此可以想到,每次考虑矩阵的右上角元素,如果大于target,则删除最后一列,小于target则删除第一行,等于则返回True
    这里“删除”操作并不需要实际执行,移动下标 i, j 即可

    class Solution:
        # array 二维列表
        def Find(self, target, array):
            # write code here
            m = len(array)
            n = len(array[0])
            i,j = 0,n-1
            while(i<m and j>=0):
                if array[i][j]< target:
                    i+=1
                elif array[i][j] > target:
                    j-=1
                else:
                    return True
            return False
    

    ac:100%

    相关文章

      网友评论

          本文标题:剑指Offer--1,二维数组查找

          本文链接:https://www.haomeiwen.com/subject/mzghiqtx.html