1. 题目
2. 分析
题目比较简单,就是使用二分法即可解决。
3. 代码
class Solution:
def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:
m = len(matrix)
# 直接遍历m行矩阵
for i in range(m):
left = 0
right = len(matrix[0]) - 1
# 如果target比最右侧值都大,那么就在下一行
if target > matrix[i][right]:
continue
while( left <= right ):
mid = (left + right) // 2
if matrix[i][mid] > target:
right -= 1
elif matrix[i][mid] < target:
left += 1
else:
return True
return False