154. 寻找旋转排序数组中的最小值 II

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Solution {
public int findMin(int[] nums) {
int i = 0;
int j = nums.length - 1;
while(i < j){
int mid = (i+j)/2;
if(nums[mid]>nums[j]){
i = mid + 1;
}else if(nums[mid] == nums[j] && nums[i] >= nums[j]){
i = i + 1;
}else if(nums[mid] == nums[j] && nums[i] <nums[j]){
j = mid - 1;
}else{
j = mid;
}
}
return nums[i];
}
}