11:旋转数组的最小数字

class Solution {
public:
    int minNumberInRotateArray(vector<int> rotateArray) {
        if(rotateArray.size()==0)return 0;
        int left=0,right=rotateArray.size()-1,middle=-1;
        while(rotateArray[left]>=rotateArray[right])
        {
            if(right-left==1)
            {
                middle=right;
                break;
            }
            middle=((right-left)>>1)+left;//移位必须加括号
            if(rotateArray[middle]>=rotateArray[left])left=middle;
            else if(rotateArray[middle]<=rotateArray[left]) right=middle;
        }
        return rotateArray[middle];
    }
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容