旋转数组的最小数字
OJ地址:旋转数组的最小数字
int minNumberInRotateArray(vector<int> rotateArray) {
if(rotateArray.size() == 0)
{
return 0;
}
int left = 0;
int right = rotateArray.size() - 1;
// 最后剩下一个元素,即为答案
while(left < right)
{
if(rotateArray[left] < rotateArray[right]) //提前退出
{
return rotateArray[left];
}
int mid = (left + right) / 2;
if(rotateArray[mid] > rotateArray[right]) //情况一
{
left = mid + 1;
}
else if(rotateArray[mid] < rotateArray[right]) //情况二
{
right = mid;
}
else //情况三
{
right--;
}
}
return rotateArray[left];
}