Leetcode 74. 搜索二维矩阵 (每日一题 20210907)

编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:

每行中的整数从左到右按升序排列。
每行的第一个整数大于前一行的最后一个整数。
 

示例 1:


输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3
输出:true
示例 2:


输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 13
输出:false


链接:https://leetcode-cn.com/problems/search-a-2d-matrix


class Solution:
    def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:
        # 方法一
        # M, N = len(matrix), len(matrix[0])
        # for i in range(M):
        #     if target > matrix[i][N-1]:
        #         continue
        #     if target in matrix[i]:
        #         return True

        # return False

        # # 方法二
        if not matrix or not matrix[0]:
            return False
        rows, cols = len(matrix), len(matrix[0])
        row, col = 0, cols - 1
        while True:
            if row < rows and col >= 0:
                if matrix[row][col] == target:
                    return True
                elif matrix[row][col] < target:
                    row += 1
                else:
                    col -= 1

            else:
                return False

        

你可能感兴趣的:(LeetCode,leetcode,算法,线性代数)