文章目录
- 题目介绍
- 题解
题目介绍
题解
正解:可以和数组最后一个数比较,来判定二分的位置是在最小值的左侧还是在最小值的右侧。
在0到n-2二分,如果nums[mid] > nums[n - 1],则mid在最小值的左侧,mid和其左侧染成红色;如果nums[mid] < nums[n - 1],则mid要么是最小值要么在最小值的右侧,染成蓝色,所以二分结束后,最左边的蓝色就是答案。
class Solution {public int findMin(int[] nums) {int left = 0, right = nums.length - 2; // 闭区间 [0, nums.length - 2]while (left <= right) { int mid = left + (right - left) / 2;if (nums[mid] < nums[nums.length - 1]) {right = mid - 1; } else {left = mid + 1; }}return nums[left];}
}