leetcode 153.寻找旋转排序数组中的最小值(Java 二分查找 medium)

https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array/

此题就是把数组分成两段,每一段都升序,并且前一段数字大于后一段。利用二分查找,如果nums[mid]<=nums[h],h=mid,其他情况都是l=mid+1。

class Solution {
    public int findMin(int[] nums) {
        int l=0,h=nums.length-1;
        while(l<h){
            int mid=l+(h-l)/2;
            if(nums[mid]<=nums[h]){
                h=mid;
            }else{
                l=mid+1;
            }
        }
        return nums[l];
    }
}

 

posted @ 2019-09-26 15:24  星辰大海。  阅读(135)  评论(0编辑  收藏  举报