算法1
因为存在重复元素,所以不能直接用二分法,需要打一个补丁将重复的元素去掉
Java 代码
class Solution {
public int findMin(int[] nums) {
int l = 0;
int r = nums.length - 1;
while(l < r && nums[l] == nums[r]) r--;
if(nums[0] < nums[r]) return nums[0];
while(l < r){
int mid = (l + r) / 2;
if(nums[mid] >= nums[0]) l = mid + 1;
else r = mid;
}
return nums[l];
}
}