74. 搜索二维矩阵
74. 搜索二维矩阵 #暴力搜索 class Solution: def searchMatrix(self, matrix: List[List[int]], target: int) -> bool: row = len(matrix) col = len(matrix[0]) for i in range(row): for j in range(col): if matrix[i][j]==target: return True return False #由于特性升序且后一行大于前一行的最后即全部升序 #采用二分法 class Solution: def searchMatrix(self, matrix: List[List[int]], target: int) -> bool: l,r = 0,len(matrix)-1 while l<=r: m = (l+r)//2 if matrix[m][0]>target: r=m-1 elif matrix[m][0]<target: l=m+1 else: braek if matrix[m][0] <= target <= matrix[m][-1]: l, r = 0, len(matrix[m]) - 1 while l <= r: n = (l+r) // 2 if matrix[m][n] > target: r = n - 1 elif matrix[m][n] < target: l = n + 1 else: break if matrix[m][n] == target: return True else: return False else: return False