1.题目描述
2.思路
首先判断target是否有可能在矩阵的某一行里,没可能直接返回False,有可能就在这一行里二分查找。
3.代码(Python3)
class Solution:def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:m, n = len(matrix), len(matrix[0])target_row = -1for i in range(m):if target < matrix[i][0]: breakif target == matrix[i][0] or target == matrix[i][n - 1]: return Trueif matrix[i][0] < target < matrix[i][n - 1]:target_row = ibreakif target_row != -1:left, right = 0, n - 1while left <= right:mid = (right + left) // 2if matrix[target_row][mid] == target: return Trueelif matrix[target_row][mid] > target: right = mid - 1else: left = mid + 1return False
4.执行情况
5.感想
最近做题手挺顺的,也可能是因为题目简单吧。