思路:二分法查找,得记一个二分法的套路啊:
while left<=right:
相等:返回
mid小于目标值:left = mid + 1
mid大于目标值:right = mid - 1
class Solution:
def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:
if not matrix: return False
row = len(matrix)
col = len(matrix[0])
left = 0
right = row * col - 1
while left <= right:
mid = left + (right - left) // 2
num = matrix[mid // col][mid % col]
if num == target:
return True
elif num < target:
left = mid + 1
else:
right = mid - 1
return False