【leetcode】#陣列【Python】74. Search a 2D Matrix 搜尋二維矩陣
阿新 • • 發佈:2018-12-20
連結:
題目:
編寫一個高效的演算法來判斷 m x n 矩陣中,是否存在一個目標值。該矩陣具有如下特性:
每行中的整數從左到右按升序排列。 每行的第一個整數大於前一行的最後一個整數。 示例 1:
輸入: matrix = [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50] ] target = 3 輸出: true 示例 2:
輸入: matrix = [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50] ] target = 13 輸出: false
我的解法: 先找到這個數可能在的那行,再二分查詢,找到了return True,找不到return False
class Solution(object):
def searchMatrix(self, matrix, target):
if len(matrix)==0 or len(matrix[0])==0:
return False
m = False
for i in range(len(matrix)):
if matrix[i][-1] >= target:
num = i
m = True
break
if m:
start = 0
end = len(matrix[0])
while start <= end:
mid = (start + end)/2
if matrix[num][mid] < target:
start = mid + 1
elif matrix[num][mid] > target:
end = mid - 1
else:
return True
return False