154. 寻找旋转排序数组中的最小值 II

面试题11. 旋转数组的最小数字:https://leetcode-cn.com/problems/xuan-zhuan-shu-zu-de-zui-xiao-shu-zi-lcof/

153. 寻找旋转排序数组中的最小值:https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array/

154. 寻找旋转排序数组中的最小值 II:https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array-ii/

class Solution {
    public int findMin(int[] numbers) {
        int left = 0;
        int right = numbers.length - 1;
        while (left < right) {
            int mid = left + (right - left) / 2;
            if (numbers[mid] < numbers[right]) {
                //这个点可能是最小的
                right = mid;
            } else if (numbers[mid] > numbers[right]) {
                //这个点一定不是最小的
                left = mid + 1;
            }
            //避免死循环
            else {
                //left++ 是不成立的 1 3 3
                right -= 1;
            }
        }
        return numbers[left];
    }
}

 

发布了562 篇原创文章 · 获赞 2609 · 访问量 436万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 猿与汪的秘密 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览