LeetCode 153

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

难度:中等

高频面试题汇总:https://www.yuweihung.com/posts/2025/lc-hot/

二分查找,与最后一个数比大小。如果 mid 比 nums[n - 1] 小,一定是蓝色(是最小值或最小值右边),反之是红色(最小值左边), 最后 right 就是答案。

时间复杂度:O(logn),其中 n 为 nums 的长度。

空间复杂度:O(1),仅用到若干额外变量。

class Solution {
public:
    int findMin(vector<int>& nums) {
        int n = nums.size();
        int left = -1, right = n - 1;
        while (left + 1 < right) {
            int mid = left + (right - left) / 2;
            if (nums[mid] < nums.back()) {
                right = mid;
            } else {
                left = mid;
            }
        }
        return nums[right];
    }
};