旋转数组的最小数字

来源:互联网 发布:linux根目录介绍 编辑:程序博客网 时间:2024/06/04 00:40

把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。

class Solution {public: int minNumberInRotateArray(vector<int> rotateArray) {  int start=0;        int end=rotateArray.size()-1;        while(start<=end){            int middle=(start+end)/2;            if(rotateArray[middle]<=rotateArray[end]){                if(rotateArray[start]<=rotateArray[middle]){                    int min=INT_MAX;                    for(int i=start;i<=end;i++){                        if(min>rotateArray[i])                            min=rotateArray[i];                    }                    return min;                }                else{                    end=middle;                }            }            else{                start=middle+1;            }        }        if(rotateArray.size()!=0)            return rotateArray[start];        else            return 0; }};


0 0
原创粉丝点击