search-a-2d-matrix.py (629B)
1 class Solution: 2 def searchMatrix(self, matrix: List[List[int]], target: int) -> bool: 3 4 for row in matrix: 5 if binary_search(row, 0, len(row) - 1, target): 6 return True 7 8 return False 9 10 11 def binary_search(row, lower, upper, target) -> bool: 12 if lower > upper: 13 return False 14 15 center = ((upper - lower) // 2) + lower 16 17 if row[center] == target: 18 return True 19 20 if row[center] > target: 21 upper = center - 1 22 return binary_search(row, lower, upper, target) 23 else: 24 lower = center + 1 25 return binary_search(row, lower, upper, target)