码迷,mamicode.com
首页 > 其他好文 > 详细

【leetcode】74. Search a 2D Matrix & 240. Search a 2D Matrix II

时间:2018-04-20 16:10:53      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:break   这一   因此   object   bubuko   and   targe   chm   span   

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

题目一:

技术分享图片

题目二:

技术分享图片

解题思路:两个题目的唯一区别在于第二个题目下一行的最小值不一定会小于前一行的最大值。但是不管怎么样我们可以确定的是,如果某一行的最小值都比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

 

【leetcode】74. Search a 2D Matrix & 240. Search a 2D Matrix II

标签:break   这一   因此   object   bubuko   and   targe   chm   span   

原文地址:https://www.cnblogs.com/seyjs/p/8890874.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!