leetcode74 搜索二维矩阵

题目描述:编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:
每行中的整数从左到右按升序排列。
每行的第一个整数大于前一行的最后一个整数。

示例:
leetcode74 搜索二维矩阵_第1张图片
题解:把二维矩阵拉成一维数组来表示,因为为有序的数组,所以用二分查找法

class Solution:
    def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:
        l = 0
        r = len(matrix)*len(matrix[0])-1
        while l<=r:
            mid = l+(r-l)//2
            row = (mid)//len(matrix[0])
            col = (mid)%len(matrix[0])
            if matrix[row][col] == target:
                return True
            elif matrix[row][col] < target:
                l = mid+1
            elif matrix[row][col] > target:
                r = mid-1
        return False

你可能感兴趣的:(刷题,矩阵,算法,线性代数)