博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【python/M/153 】Find Minimum in Rotated Sorted Array
阅读量:2171 次
发布时间:2019-05-01

本文共 696 字,大约阅读时间需要 2 分钟。

题目描述

这里写图片描述

基本思路

题目中给出我们两个关键点,其一:这是个一升序数组,其二被一个pivot旋转了一下。

旋转过后的数组具有一下特点:
1. 以这个pivot为中心(这个中心就是我们要求的最小值)
2. 数组分为两部分,前半部分递增,后半部分也递增
3. 如果是旋转的,nums[0] > nums[-1]

一般见到有序的,就选择二分查找来做,都是变体。

实现代码

class Solution(object):    def findMin(self, nums):        """        :type nums: List[int]        :rtype: int        """        # 判断是否有旋转        if len(nums) == 1 or nums[0] < nums[-1]:            return nums[0]        minD = nums[0]        length = len(nums)        left,right = 0,length-1        while left <= right:            mid = (left+right) // 2              if nums[mid] >= minD:                left = mid + 1            else:                minD = nums[mid]                right = mid        return minD
你可能感兴趣的文章
【LEETCODE】112-Path Sum
查看>>
【LEETCODE】9-Palindrome Number
查看>>
【极客学院】-python学习笔记-Python快速入门(面向对象-引入外部文件-Web2Py创建网站)
查看>>
【LEETCODE】190-Reverse Bits
查看>>
【LEETCODE】67-Add Binary
查看>>
【LEETCODE】7-Reverse Integer
查看>>
【LEETCODE】165-Compare Version Numbers
查看>>
【LEETCODE】299-Bulls and Cows
查看>>
【LEETCODE】223-Rectangle Area
查看>>
【LEETCODE】12-Integer to Roman
查看>>
【学习方法】如何分析源代码
查看>>
【LEETCODE】61- Rotate List [Python]
查看>>
【LEETCODE】143- Reorder List [Python]
查看>>
【LEETCODE】82- Remove Duplicates from Sorted List II [Python]
查看>>
【LEETCODE】86- Partition List [Python]
查看>>
【LEETCODE】147- Insertion Sort List [Python]
查看>>
【算法】- 动态规划的编织艺术
查看>>
用 TensorFlow 让你的机器人唱首原创给你听
查看>>
对比学习用 Keras 搭建 CNN RNN 等常用神经网络
查看>>
深度学习的主要应用举例
查看>>