class Solution {
public:
int findPeakElement(vector<int>& nums) {
int n=nums.size();
if(n==1) return 0;
if(n==2) return nums[0]>nums[1]?0:1;
int s=1, e=n-2;
int mid=s+(e-s)/2;
while(s<=e)
{
if(nums[mid]>nums[mid-1]&&nums[mid]>nums[mid+1]) return mid;
else if(nums[mid]<nums[mid+1]) s=mid+1;
else if(nums[mid]<=nums[mid-1])e=mid-1;
mid=s+(e-s)/2;
}
if(nums[0]>nums[1]) return 0;
else if(nums[n-1]>nums[n-2]) return n-1;
return -1;
}
};
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter