Leetcode 153 寻找旋转排序数组中的最小值

题目

代码分析

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

代码实现

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];
    }
}

学习情况

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务