题目

代码分析

需要注意特殊情况,本身就是有序的,通过二分查找

代码实现

class Solution {
    public int findMin(int[] nums) {
        int start=0;
        int end=nums.length-1;
        if(nums[start]<nums[end]) return nums[start];
        while(start<end)
        {
            if(start+1==end) return Math.min(nums[start],nums[end]);
            int mid=(start+end)/2;
            if(nums[start]<nums[mid])//缺口在后面
            {
                 start=mid;
            }else
            {
                end=mid;//可能mid就是缺口
            }
        }
        return nums[start];
    }
}

学习情况