劍指offer第一題--二維陣列中的查詢
阿新 • • 發佈:2019-01-06
題目描述
在一個二維陣列中(每個一維陣列的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。
思路
最小值為左上方值,最大值在右下方,從左下方開始,小於目標值則向右,大於目標值向上
程式碼
class Solution: # array 二維列表 def Find(self, target, array): # write code here if not array: return False m = len(array) if m == 0: return False n = len(array[0]) if n == 0: return False if target < array[0][0] or target > array[m-1][n-1]: return False cur_m = m - 1 cur_n = 0 while cur_m >= 0 and cur_n < n: if array[cur_m][cur_n] == target: return True elif array[cur_m][cur_n] > target: cur_m -= 1 else: cur_n += 1 return False
結果
執行時間:293ms
佔用記憶體:5624k