zoukankan      html  css  js  c++  java
  • Search a 2D Matrix【python】

    class Solution:
        # @param matrix, a list of lists of integers
        # @param target, an integer
        # @return a boolean
        def searchMatrix(self, matrix, target):
            n=len(matrix)
            m=len(matrix[0])
            if target>matrix[n-1][m-1] or target<matrix[0][0]:
                return False
            head = 0
            end = n-1
            mid = (end+head)//2
            while mid>head and mid <end:
                if target<matrix[mid][0]: end=mid
                else: head=mid
                mid= (end+head)//2
            keyline=mid
            if target>matrix[keyline][m-1]: keyline+=1
            head = 0
            end = m-1
            mid = (end+head)//2
            while mid>=head and mid <end:
                if target<=matrix[keyline][mid]: end=mid
                else: head=mid+1
                mid= (end+head)//2        
            return target==matrix[keyline][mid]
       
    if __name__=='__main__':
        s=Solution()
        m=[[1,2,3],[4,5,6],[7,8,9]]
        print(s.searchMatrix(m,3))

    OJ runtime :224 ms

  • 相关阅读:
    分糖果
    数字游戏
    错误票据
    包子凑数
    带分数
    翻硬币
    核桃的数量
    快速幂
    公倍数与素数筛选
    mysql 查询当天当周当月的数据
  • 原文地址:https://www.cnblogs.com/iois/p/3940958.html
Copyright © 2011-2022 走看看