题目

解题

"""
时间复杂度为 O(m + n),其中 m 是矩阵的行数,n 是矩阵的列数。
"""


def searchMatrix(matrix, target) -> bool:
    if not matrix or not matrix[0]:
        return False

    # 从右上角开始搜索
    row, col = 0, len(matrix[0]) - 1

    while row < len(matrix) and col >= 0:
        if matrix[row][col] == target:
            return True
        elif matrix[row][col] > target:
            col -= 1  # 如果当前值大于目标值,向左移动
        else:
            row += 1  # 如果当前值小于目标值,向下移动

    return False


matrix = [[1, 4, 7, 11, 15], [2, 5, 8, 12, 19], [3, 6, 9, 16, 22], [10, 13, 14, 17, 24], [18, 21, 23, 26, 30]]
target = 5
print(searchMatrix(matrix, target))
08-27 08:27