题目 <https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array/>
自己画图分析了一下,主要有两种情况
nums[left] > nums[right] > nums[mid]
nums[mid] > nums[left] > nums[right]
int findMin(int* nums, int numsSize){
int left,right,mid;
left = 0;right = numsSize-1;
while(left!=right){
mid = left+(right-left)/2;
if(nums[left] > nums[right])
{
if(nums[mid] >= nums[left])//注意这里,mid有可能等于left
{
left = mid+1;
}
else //if(nums[mid] < nums[right])
{
right = mid;
}
}
else //if(nums[left]<nums[right])
{
break;
}
}
return nums[left];
}