美文网首页
旋转数组的最小下标

旋转数组的最小下标

作者: 霍尔元件 | 来源:发表于2019-04-02 10:05 被阅读0次

很简单很基础
第一种
我们最先就判断能否直接命中target
保证了后面的判断中target不可能被漏掉 因为mid不可能是target

class Solution(object):
    def findMin(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        l, r = 0, len(nums) - 1
        while l <= r:
            mid = l + ((r - l) >> 1)
            if nums[mid] < nums[mid - 1]: # 数组中唯一一个逆序 序列 找到之后直接返回 数组越界问题? 假设只有一个元素 nums[0] < nums[-1] 此时 nums[-1]合法 表示最后一个元素
                return nums[mid]

            elif nums[mid] < nums[l]: # mid 位于右段 target位于左段
                r = mid - 1
            elif nums[mid] > nums[r]: # mid 位于左段 target位于右段
                l = mid + 1
            else: # 处理只有一个元素的情况 [1]
                return nums[l]

第二种

    def search(self, nums, target):
        # 先去找到旋转数组的最小元素的下标
        left, right = 0, len(nums) - 1
        while left < right: # 思想是一定要等到区间缩小到1 不区判断mid是否可以直接命中
            mid = (left + right) // 2
            if nums[mid] > nums[right]: # mid 位于左段 target必然在右段
                left = mid + 1
            else: # mid位于右段 target位于左段
                right = mid # 一定不能是mid - 1 因为target本身就在右段上面 我们得保证不漏掉target
        
        return left # 此时 mid == left == right

相关文章

  • 旋转数组的最小下标

    很简单很基础第一种我们最先就判断能否直接命中target保证了后面的判断中target不可能被漏掉 因为mid不可...

  • [剑指offer]08-旋转数组的最小数字

    旋转数组的最小数字 题目 给定一个递增的旋转数组A,返回旋转数组中的最小值。旋转数组:给定一个已排序的数组,假设为...

  • 二分法查找

    1,二分法查找,插入元素位置 2,数组旋转,求最小值问题 参考 旋转数组的最小元素

  • 二十二讲 数组空间有关问题

    1 数组旳大小 Lbound(数组)可以获取数组的最小下标 Ubound(数组)可以获取数组的最大上标 Uboun...

  • 找出数组中的最大值最小值,最小值必须在最大值前面

    给一个数组,找出数组中的最大值最小值,最小值必须在最大值前面,也就是说最小值的下标必须比最大值的下标小。 要求时间...

  • 旋转数组的最小值

    旋转数组的最小值 所谓旋转数组,即是递增有序数组旋转右移动若干位得到的数组,这里的右移和java里的>>>有点不同...

  • 剑指Offer算法题-旋转数组的最小数字--Swift

    题目:把一个数组最开始的若干个元素搬到数组的尾部,我们称之为数组的旋转。输入一个递增数组的旋转,输出旋转数组的最小...

  • 面试题11-旋转数组求最小数

    题目要求 旋转数组是指将数组的元素逐个移动至数组尾部。现在有一个递增的数组,将数组旋转后,求数组的最小值。 题目解...

  • 排序算法

    1、选择排序从数组第一个开始:i=0将数组中第 i 个当作最小,保存最小值的数组下标:minPos=i在剩余的数中...

  • leetcode 题解

    1. 关于旋转数组 旋转数组求最小值,最大值,以及任意值:https://leetcode.windliang.c...

网友评论

      本文标题:旋转数组的最小下标

      本文链接:https://www.haomeiwen.com/subject/mjlwbqtx.html