1. 程式人生 > >二維數組查找

二維數組查找

find 技術總結 關鍵點 種類 pro 函數 繼續 () 是否

#Problem Description:
# 在一個二維數組中(每個一維數組的長度相同),每一行都按照從左到右遞增的順序排序,
# 每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個
# 整數,判斷數組中是否含有該整數。

class Solution:
    # array 二維列表
    def Find(self, target, array):
        row = len(array)-1        #行數
        col = len(array[0])-1     #列數
        i = 0
        j = col
        while j>=0 and i<=row:
            if array[i][j]>target:
                j-= 1
            elif array[i][j]<target:
                i+= 1
            else:
                return True
        return False  
    
matrix = [[1,2,3,4],[2,3,4,5],[3,4,5,6],[4,5,6,7]]
s = Solution() 
print(s.Find(5,matrix))

  

#Summary:
#思維關鍵點是矩陣左下角或者右上角,如果是左下角,比其小的,行-1繼續查找,如果比起大,列+1繼續查找,右上角則相反
#技術總結 ①二維數組的兩種定義方法:list 或者numpy.array()
# ②list可以裝不同類型元素int float str,array只能裝同種類型
# ③獲取元素方法list[0][1],array[0,1]
# ④list轉換array調用numpy模塊中的array方法 np.array(list)

二維數組查找