谢谢你们的回复,若有空闲时间,希望你们能帮忙看看,谢谢~

class Solution {
public:
int minNumberInRotateArray(vector<int> rotateArray) {
if (rotateArray.size() == 0) { return 0; }

pStart = 0;
pEnd = rotateArray.size() - 1;
pMid = (pStart + pEnd) / 2;

if (rotateArray[pStart]<rotateArray[pMid] && rotateArray[pMid]<rotateArray[pEnd])
{
return rotateArray[pStart];
}

else if (rotateArray[pStart] == rotateArray[pMid] && rotateArray[pMid] == rotateArray[pEnd])
{
return findMinNumberTraversal(rotateArray);
}

else
{
return findMinNumber(rotateArray);

}
}
private:
int findMinNumberTraversal(vector<int> array)
{
int minNumber = array[0];
for (int i = 0; i<array.size(); i++)
{
minNumber = min(minNumber, array[i]);
}

return minNumber;
}

int  findMinNumber(vector<int> array)
{
while (pEnd>pStart)
{
if (array[pStart]<array[pMid] && array[pEnd]<array[pMid])
{
pStart = pMid;
}
else if (array[pStart]>array[pMid])
{
pEnd = pMid;
}

pMid = (pStart + pEnd) / 2;
if (pEnd == pStart + 1) { return array[pEnd]; }
}
}


int pStart;
int pEnd;
int pMid;

};