二維數組查找
阿新 • • 發佈:2018-09-04
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)
二維數組查找