Python實遍歷二維陣列題目一:在一個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。
阿新 • • 發佈:2019-01-06
在準備國網的過程中,仍要刷題,程式設計題。痛並快樂著。
喜歡Python語言,所以用Python進行敲磚頭。
劍指offer
題目一:在一個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。
class Solution: # array 二維列表 def Find(self, target, array): # write code here row = 0 maxrow = len(array) - 1 col = len(array[0]) - 1 while col>=0 and row<= maxrow: if array[row][col] == target: return True elif target > array[row][col]: row+=1 else : target < array[row][col] col-=1 return False
解題思路:首先從行號最小列號最大(右上角)的數開始比較,若目標較小,說明當前遍歷的數較大,則使列號減一,減小當前遍歷的數;若目標較大,說明當前遍歷的數較小,則使行號加一,增大當前遍歷的數。當然,也可以從左下角開始遍歷。