Find Minimum in Rotated Sorted Array II
Input: [1,3,5]
Output: 1Input: [2,2,2,0,1]
Output: 0Last updated
Input: [1,3,5]
Output: 1Input: [2,2,2,0,1]
Output: 0Last updated
class Solution {
public int findMin(int[] nums) {
if(nums == null | nums.length == 0){
return -1;
}
int start = 0, end = nums.length - 1;
while(start + 1 < end){
int mid = start + (end - start)/2;
if(nums[mid] < nums[end]){
end = mid;
}
else if(nums[mid] > nums[end]){
start = mid;
}
//因为要找最小值,所以尽量从后往前缩进,end--跳过重复值
else{
end--;
}
}
if(nums[start]<= nums[end]){
return nums[start];
}else{
return nums[end];
}
}
}