题目地址:链接
思路: 利用旋转排序数组特性,采用二分查找。比较 mid 与首元素,若 mid 更大则最小值在右半区,否则在左半区,缩窄区间至 l=r,返回 nums [l] 即为最小值。
/**
* @param {number[]} nums
* @return {number}
*/
var findMin = function(nums) {
let n = nums.length;
let [l, r] = [0, n - 1];
if(nums[r] > nums[l]) return nums[l];
while(l < r) {
let mid = l + r >> 1;
if(nums[mid] >= nums[0]) l = mid + 1;
else r = mid;
}
return nums[l];
};
920

被折叠的 条评论
为什么被折叠?



