要求 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;
}