zoukankan      html  css  js  c++  java
  • 【leetcode】74. 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
  • 相关阅读:
    C++学习笔记1——const
    反转二叉树
    pywinauto 使用
    pywinauto 的使用
    爬虫基础知识
    mongdb安装配置
    pyinstaller
    Python3.6+pyinstaller+Django
    py2exe安装使用
    cx_freeze的安装使用
  • 原文地址:https://www.cnblogs.com/seyjs/p/8890874.html
Copyright © 2011-2022 走看看