class Solution:
def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:
# 边界条件
if not matrix or len(matrix) == 0:
return False
# 遍历二维数组
for nums in matrix:
if nums[0] <= target:
# 定义左右指针
left, right = 0, len(nums)-1
# 循环体
while left <= right:
# 中间值
mid = left + (right-left)//2
# 等于目标值
if nums[mid] == target:
return True
# 小于目标值
elif nums[mid] < target:
left = mid + 1
# 大于目标值
else:
right = mid - 1
# 未找到
return False
class Solution:
def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:
# 边界条件
if not matrix or len(matrix) == 0:
return False
# 左右双指针
left, right= 0,len(matrix)*len(matrix[0])-1
# 循环体
while left <= right:
# 中间值
mid = left + (right-left)//2
# 中间值等于目标值
if matrix[mid//len(matrix[0])][mid%len(matrix[0])] == target:
return True
# 中间值大于目标值
elif matrix[mid//len(matrix[0])][mid%len(matrix[0])] > target:
right = mid -1
# 中间值小于目标值
else:
left = mid + 1
# 未找到
return False