• 154寻找旋转排序数组中的最小值II


    题目:

    法一:自己的代码

    思路:同153一样,只不过如果遇到相等的,先缩小范围直到不相等,

    from typing import List
    class Solution:
        def findMin(self, nums: List[int]) -> int:
            left = 0
            right = len(nums) - 1
            res = float('inf')
            while left < right:
                mid = (left + right) >> 1
                if nums[left] == nums[right]:
                    left = left + 1
                elif nums[mid] == nums[right]:
                    right = right - 1
                    res = min(nums[mid], res)
                elif nums[mid] == nums[left]:
                    left = left + 1
                    res = min(nums[mid], res)
                else:
                    if nums[right] < nums[left]:
                        if nums[mid] < nums[right]:
                            res = min(nums[mid], res)
                            right = mid
                        else:
                            res = min(nums[right], res)
                            left = mid + 1
                    else:
                        res = min(nums[left], res)
                        right = mid
            return min(res, nums[left])
    if __name__ == '__main__':
        solution = Solution()
        # result = solution.findMin([4,5,6,7,0,1,2])
        # result = solution.findMin([2,2,2,0,1])
        # result = solution.findMin([2,0,1,1,1])
        result = solution.findMin([1,2,2,2,0,1,1])
        print(result)
    View Code

    改进后的代码:

    思路:同153改进后的一样,仍然是用中间端点和右边端点的关系进行讨论,只不过多加了对相等情况的处理,

    class Solution:
        def findMin(self, nums: List[int]) -> int:
            left, right = 0, len(nums) - 1
            while left < right:
                mid = (left + right) // 2
                if nums[mid] > nums[right]: left = mid + 1
                elif nums[mid] < nums[right]: right = mid
                else: right = right - 1 # key
            return nums[left]
    
    
    作者:jyd
    链接:https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array-ii/solution/154-find-minimum-in-rotated-sorted-array-ii-by-jyd/
    来源:力扣(LeetCode)
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
    View Code

    ttt

  • 相关阅读:
    AOP
    关于zookeeper部署的个数
    Zookeeper 简介
    Java 正则表达式
    面试记录
    面试题
    Spring Framework官方文档翻译(中英文版)
    java知识巩固
    mysql sql记录
    redis入门
  • 原文地址:https://www.cnblogs.com/xxswkl/p/12358532.html
Copyright © 2020-2023  润新知