旋转数组的最小值
旋转数组的最小数字
https://www.nowcoder.com/practice/9f3231a991af4f55b95579b44b7a01ba?tpId=13&tqId=11159&tPage=1&rp=1&ru=%2Fta%2Fcoding-interviews&qru=%2Fta%2Fcoding-interviews%2Fquestion-ranking
class Solution { public: 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=(right+left)/2; if(rotateArray[mid]>rotateArray[left]) left=mid+1; else if(rotateArray[mid]<rotateArray[right]) right=mid; else left++; } return rotateArray[left]; } };
思路为二分查找,但是为什么
if(rotateArray[left]<rotateArray[right])
return rotateArray[left]; 放在循环之外只能过三分之一的样例?