旋转数组的最小数字

image-20200722210752811

思路

就是二分法的一个简单的变形

代码

//判断相等,以一边以基准,调整left和right
class Solution {
    public int minArray(int[] numbers) {
        int left= 0;
        int right = numbers.length - 1;
        while(left < right){
            int mid = (left + right) >> 1;
            if(numbers[mid] == numbers[right]){
                right --;
            }
            else if(numbers[mid] > numbers[right]){
                left = mid + 1;
            }
            else{
                right = mid;
            }
        }
        return numbers[left];
    }
}
posted @ 2020-07-22 21:09  zjy4fun  阅读(84)  评论(0编辑  收藏  举报