二维数组中的查找-python


题目:在一个二维数组中,每一行从左到右递增,每一列从上到下递增,判断数组中是否存在某个数字

思路:利用从左到右递增,从上到下递增的规律

从二位数组的最后一行的第一列开始,如果number比该位置的值大,则往上找,number比该位置的值小,往右找

 

def get_number(arr, number):
    if len(arr) == 0 and len(arr[0]) == 0:
        return False
    i = len(arr) - 1
    j = 0
    cols = len(arr[0]) - 1
    while i >= 0 and j <= cols:
        if number == arr[i][j]:
            return True
        elif number > arr[i][j]:
            j += 1
        else:
            i -= 1
    return False


if __name__ == '__main__':
    arr = [[1, 2, 8, 9], [2, 4, 9, 12], [4, 7, 10, 13]]
    result = get_number(arr, 100)
    print result

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM