1. 程式人生 > >【leetcode】#陣列【Python】74. Search a 2D Matrix 搜尋二維矩陣

【leetcode】#陣列【Python】74. Search a 2D Matrix 搜尋二維矩陣

連結:

題目:

編寫一個高效的演算法來判斷 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