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

题目:
编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:  每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数。 
思路:
对行进行二分
程序:
class Solution:
    def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:
        row = len(matrix)
        if row <= 0:
            return False
        if row == 1:
            if target in matrix[0]:
                return True
            else:
                return False
        for index in range(row):
            top = 0
            bottom = len(matrix) - 1
            while top <= bottom:
                middle = (top + bottom) // 2
                if target > max(matrix[middle]):
                    top = middle + 1
                elif target < min(matrix[middle]):
                    bottom = middle - 1
                elif target in matrix[middle]:
                    return True
                else:
                    return False
        return False
 
目前为止最好的成绩了,怀挺

猜你喜欢

转载自www.cnblogs.com/zhuozige/p/12752935.html