二維數組中的查找-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