class Solution: def searchMatrix(self, matrix: List[List[int]], target: int) -> bool: m, n = len(matrix), len(matrix[0]) p = m * n l, r = 0, p - 1 while l <= r: mid = l + (r - l) // 2 row = mid // n col = mid % n if matrix[row][col] == target: return True elif target < matrix[row][col]: r = mid - 1 else: l = mid + 1 return False Complexity Time: O(log(m⋅n)) Space: O(1)