zoukankan      html  css  js  c++  java
  • Leetcode练习(Python):二分查找类:第240题:搜索二维矩阵 II:编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。

    题目:
    搜索二维矩阵 II:编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性:  每行的元素从左到右升序排列。 每列的元素从上到下升序排列。
    思路:
    二分查找常规思路。
    程序:
    class Solution:
        def searchMatrix(self, matrix, target):
            """
            :type matrix: List[List[int]]
            :type target: int
            :rtype: bool
            """
            if not matrix:
                return False
            row = len(matrix)
            column = len(matrix[0])
            if row == 0:
                return False
            if column == 0:
                return False
            for index in range(row):
                if target >= matrix[index][0] and target <= matrix[index][column - 1]:
                    left_index = 0
                    right_index = column - 1
                    while left_index <= right_index:
                        middle_index = (left_index + right_index) // 2
                        if matrix[index][middle_index] == target:
                            return True
                        elif matrix[index][middle_index] > target:
                            right_index = middle_index - 1
                        else:
                            left_index = middle_index + 1
            return False
  • 相关阅读:
    HDOj-1412
    HDOJ-2153
    HDOJ-1002
    紫书 例题 11-5 UVa 10048 (Floyd求最大权值最小的路径)
    紫书 例题11-4 UVa247 (Floyd判断联通)
    最短路模板
    紫书 例题 11-3 UVa 1151 (有边集的最小生成树+二进制枚举子集)
    紫书 例题 11-2 UVa 1395(最大边减最小边最小的生成树)
    紫书 例题 11-1 UVa 12219 (表达式树)
    紫书 习题 8-25 UVa 11175 (结论证明)(配图)
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12874802.html
Copyright © 2011-2022 走看看