74. 搜索二维矩阵

74. 搜索二维矩阵
#暴力搜索
class Solution:
    def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:
        row = len(matrix)
        col = len(matrix[0])
        for i in range(row):
            for j in range(col):
                if matrix[i][j]==target:
                    return True
        return False
#由于特性升序且后一行大于前一行的最后即全部升序
#采用二分法
class Solution:
    def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:
        l,r = 0,len(matrix)-1
        while l<=r:
            m = (l+r)//2
            if matrix[m][0]>target:
                r=m-1
            elif matrix[m][0]<target:
                l=m+1
            else:
                braek
        if matrix[m][0] <= target <= matrix[m][-1]:
            l, r = 0, len(matrix[m]) - 1           
            while l <= r:
                n = (l+r) // 2
                if matrix[m][n] > target:
                    r = n - 1
                elif matrix[m][n] < target:
                    l = n + 1
                else:
                    break
            if matrix[m][n] == target:
                return True
            else:
                return False   
        else:
            return False

 

 
posted @ 2022-08-30 14:15  是冰美式诶  阅读(13)  评论(0)    收藏  举报