class Solution {
public:
int minNumberInRotateArray(vector<int> rotateArray) {
if(rotateArray.size()==0)return 0;
int low=0,high=rotateArray.size()-1,mid;
while(low<high){
if(rotateArray[low]<rotateArray[high])return rotateArray[low];//当要查找的数组这样必然递增,直接返回值
mid = low+(high-low>>1);
if(rotateArray[mid] > rotateArray[low])low=mid+1;//前半个部分为递增数组。从后半个部分找low=mid+1
else if(rotateArray[mid] < rotateArray[high])high=mid;//后半个部分递增,则结果在前半个部分high=mid
else low++;//相等时,无法确定最小值在那一块,只能一步一步找。
}
return rotateArray[low];
}
};