## 題解 ### 逐行 Binary Search 利用 row 由小到大的特性,逐行搜索 ```python= class Solution: def searchMatrix(self, matrix: List[List[int]], target: int) -> bool: m, n = len(matrix), len(matrix[0]) def binary_search(nums: List[int]): nonlocal n,target left, right = 0, n - 1 while left <= right: mid = left + (right - left) // 2 if nums[mid] < target: left = mid + 1 elif nums[mid] > target: right = mid - 1 else: return True return False for i in range(m): if binary_search(matrix[i]): return True return False ``` ### Z字搜索法 利用 row cols 由小到大的特性搜索 ```python= class Solution: def searchMatrix(self, matrix: List[List[int]], target: int) -> bool: m, n = len(matrix), len(matrix[0]) x, y = 0, n - 1 while x < m and y >= 0: if matrix[x][y] == target: return True elif matrix[x][y] > target: y -= 1 elif matrix[x][y] < target: x += 1 return False ```