題目描述
在一個二維數組中(每個一維數組的長度相同),每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。
分析
根據二維數組的大小特性來尋找數字 7
:
二維數組的行數爲n
,列數爲m
,那麼:
維護兩索引變量,時間複雜度O(n+m)
, 空間複雜度爲O(1)
。
代碼
# -*- coding:utf-8 -*-
class Solution:
# array 二維列表
def Find(self, target, array):
# write code here
if not array:
return False
numRow = len(array) - 1
numCol = len(array[0]) - 1
row = 0
col = numCol
while col >= 0 and row<= numRow:
if array[row][col] < target:
row += 1
elif array[row][col] > target:
col -= 1
else:
return True
return False