• 2、二维数组中的查找


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

     由于9>7,而9所在列下方的元素都大于9,所以剔除9所在的列

       由于8>7,所以,同上剔除8所在的列

    由于2小于7,而2所在行左边的元素均小于2,所以,剔除2所在的行

      由于4<7,剔除4所在的行

    lis=[[1,2,8,9],
         [2,4,9,12],
         [4,7,10,13],
         [6,8,11,15]]
    
    target=15
    rows=len(lis)-1               #数组的行数
    cols=len(lis[0])-1            #数组的列数
    
    def findNum(lis,target):
        i = 0                     # (i,j)标记最右上角元素的坐标
        j = cols
        while i<=rows and j>=0:
            temp = lis[i][j]
            if temp == target:
                return True
            elif temp>target:
                j=j-1
            elif temp<target:
                i=i+1
        return False
    
    print(findNum(lis,target))
  • 相关阅读:
    Bash's Big Day
    树链剖分求lca
    Contest1814
    启发式合并
    2019 Multi-University Training Contest 10
    图论题
    vijos-记数问题
    2018届研究生招生预推免(THU,HIT)经历分享
    数细胞-swust oj
    Bone Collector-HDU
  • 原文地址:https://www.cnblogs.com/zijidan/p/9512178.html
Copyright © 2020-2023  润新知