LeetCode : Find Peak Element

来源:互联网 发布:酷宝数据 作假 编辑:程序博客网 时间:2024/05/16 15:06

要求log2n的复杂度首先考虑二分法。

int findPeakElement(vector<int>& nums){    if(nums.size() == 1)        return nums[0];    int begin = 0, end = nums.size() - 1;    while(begin < end)    {        if(end - begin == 1)            return nums[begin] > nums[end] ? begin : end;        int mid = (begin + end) / 2;        if(nums[mid] <= nums[begin])        {            end = mid;            continue;        }        if(nums[mid] <= nums[end])        {            begin = mid;            continue;        }        begin ++;        end --;    }    return begin;}
0 0