美文网首页
240搜索二维矩阵II

240搜索二维矩阵II

作者: 风中丶凌乱 | 来源:发表于2019-05-20 00:25 被阅读0次

    编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性:

    每行的元素从左到右升序排列。
    每列的元素从上到下升序排列。
    示例:

    现有矩阵 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,返回 true。

    给定 target = 20,返回 false。

    思路是用循环遍历的方法进行比较,从矩阵的左下角或者右上角开始遍历,这样知道了比较的结果是大还是小,就知道了对应的前进方向。
    我的代码是使用从右上角开始遍历:

    class Solution:
        def searchMatrix(self, matrix, target):
            """
            :type matrix: List[List[int]]
            :type target: int
            :rtype: bool
            """
            if not matrix:
                return False
            if not matrix[0]:
                return False
            rows = len(matrix)
            cols = 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
    

    运行结果后傻眼了,代码只超过了33的用户,好郁闷啊。以后会继续寻找更好的方法解决这道题!

    相关文章

      网友评论

          本文标题:240搜索二维矩阵II

          本文链接:https://www.haomeiwen.com/subject/ffbczqtx.html