问题:
思路:
跟昨天练的一个题很类似,这个就是用二分查找法,寻找左大于右的情况,
代码:
class Solution {
public int findMin(int[] nums) {
int left = 0;
int right = nums.length-1;
if(nums[left]<=nums[right]){
return nums[left];
}
while(left<=right){
int mid = left+(right-left)/2;
if(mid!=0 && nums[mid-1]>nums[mid]){
return nums[mid];
}else{
if(nums[mid] >= nums[left]&& nums[left]>nums[right]){
left = mid+1;
}else if(nums[mid] <= nums[right]&& nums[left]>nums[right]){
right = mid-1;
}else if(nums[left]<=nums[right]){
return nums[left];
}
}
}
return -1;
}
}