標籤:leetcode
Find Peak Element
A peak element is an element that is greater than its neighbors.
Given an input array where num[i] ≠ num[i+1], find a peak element and return its index.
The array may contain multiple peaks, in that case return the index to any one of the peaks is fine.
You may imagine that num[-1] = num[n] = -∞.
For example, in array [1, 2, 3, 1], 3 is a peak element and your function should return the index number 2.
click to show spoilers.
Credits:
Special thanks to @ts for adding this problem and creating all test cases.
輸入任意一個比相鄰兩元素都大的那個數的下標。
比較2n次
class Solution {public: int findPeakElement(vector<int>& nums) { for(int i=0;i<nums.size();i++){ if(i==0&&nums[i]>nums[i+1]) return i; if(i==nums.size()-1&&nums[i]>nums[i-1]) return i; if(nums[i]>nums[i-1]&&nums[i]>nums[i+1]) return i; } }};
比較n次。比後一個元素大即可,因為如果該元素比前一個小,就輸出了。
int findPeakElement(int* nums, int numsSize) { for(int i=0;i<numsSize-1;i++){ if(nums[i]>nums[i+1]) return i; } return numsSize-1;}
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
leetcode-162-Find Peak Element