class Solution:
def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:
if not matrix or not matrix[0]: # 检查矩阵是否为空
return False
m ,n = len(matrix),len(matrix[0]) # 获取矩阵的行数和列数
left,right = 0,m*n-1 # 初始化左右边界
while left <= right: # 二分搜索
mid = (left + right) // 2 # 计算中间元素索引
row,col = divmod(mid,n) # 将索引转换为坐标
mid_val = matrix[row][col] # 获取中间元素的值
if mid_val == target:
return True
elif mid_val < target:
left = mid + 1
else:
right = mid - 1
return False
leetcode-搜索二维矩阵
最新推荐文章于 2024-04-28 16:03:45 发布