leetcode74. Search a 2D Matrix & 240. Search a 2D Matrix II

Posted seyjs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode74. Search a 2D Matrix & 240. Search a 2D Matrix II相关的知识,希望对你有一定的参考价值。

题目如下:这两个题目可以用同样的代码来解答,因此就合并在一起了。

题目一:

题目二:

解题思路:两个题目的唯一区别在于第二个题目下一行的最小值不一定会小于前一行的最大值。但是不管怎么样我们可以确定的是,如果某一行的最小值都比target要大,那么这一行之后的值都比target要大。如果target介于某一行的最小值和最大值之间,那么target有可能在这一行。至于如何判断target是否存在,因为数组有序,用二分查找即可。

代码如下:

class Solution(object):
    def searchMatrix(self, matrix, target):
        import  bisect
        ROW = len(matrix)
        if ROW == 0:
            return False
        COLUMN = len(matrix[0])
        if COLUMN == 0:
            return False
        for i in matrix:
            if i[0] <= target and i[-1] >= target:
                inx = bisect.bisect_left(i,target)
                if i[inx] == target:
                    return True
            elif i[0] > target:
                break
        return False

 

以上是关于leetcode74. Search a 2D Matrix & 240. Search a 2D Matrix II的主要内容,如果未能解决你的问题,请参考以下文章

leetcode 74 Search a 2D Matrix ----- java

LeetCode 74.Search a 2D Matrix Java

19.2.13 [LeetCode 74] Search a 2D Matrix

[LeetCode] 74. Search a 2D Matrix 搜索一个二维矩阵

leetCode 74.Search a 2D Matrix(搜索二维矩阵) 解题思路和方法

LeetCode 74 Search a 2D Matrix(搜索2D矩阵)