python 二維陣列的賦值_Python: 面試題4 二維陣列中的查詢
阿新 • • 發佈:2020-12-25
技術標籤:python 二維陣列的賦值
題目
在一個 n * m 的二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。
Leetcode:
力扣leetcode-cn.com方法1:遍歷
從左到右,從上到下進行遍歷,時間複雜度為O(N*M),空間複雜度為O(1)
程式碼略(這麼寫的話面試大概率過不了吧)
方法2:從左上角或右下角進行遍歷, 時間複雜度為O(max(N,M)),空間複雜度為O(1)
class Solution: def findNumberIn2DArray(self, matrix: List[List[int]], target: int) -> bool: if not matrix: return False N = len(matrix) M = len(matrix[0]) n = N-1 m = 0 while n>=0 and m<M: if matrix[n][m]==target: return True elif matrix[n][m]>target: n -=1 else: m +=1 return False
ps.本人即將找工作的菜雞,歡迎批評指導!