【剑指offer】6 旋转数组中的最小数字

题目

在这里插入图片描述

分析

分为三种情况
如果 mid>r,最小值一定在mid右边
如果 mid ==r,最小值在 mid和r之间 r= mid -1
如果 mid <r,最小值有可能是mid或者mid左边 r = mid

python代码

class Solution:
    def minNumberInRotateArray(self, rotateArray):
        # write code here
        l = 0
        r = len(rotateArray)-1
        while l<r:
            mid = (l+r)>>1
            if rotateArray[mid]>rotateArray[r]:
                l = l+1
            elif rotateArray[mid]==rotateArray[r]:
                r = mid-1
            else:
                r = mid
        return rotateArray[r]
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页