谢谢你们的回复,若有空闲时间,希望你们能帮忙看看,谢谢~ 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; };
点赞 1

相关推荐

牛客网
牛客企业服务