[LeetCode] Find Peak Element
Find Peak Element
A peak element is an element that is greater than its neighbors.
Given an input array wherenum[i] ≠ num[i+1], Find a peak element and return its index.
The array may contain in multiple peaks, in that case return the index to any one of the peaks is fine.
You may imagine thatnum[-1] = num[n] = -∞.
For example, in array[1, 2, 3, 1], 3 is a peak element and your function shocould return the index number 2.
Solution:
This question is quite simple, as long as one of the peaks is returned. You only need to scan an array at most once. Officially speaking, the bipartite method is the same as that in my opinion, because this array is randomly arranged. Pay attention to handling in special cases.
Class Solution {public: int findPeakElement (const vector
& Num) {int len = num. size (); // handle special cases if (len = 0 | len = 1) {return 0;} if (num [0]> num [1]) {return 0;} if (num [len-1]> num [len-2]) {return len-1;} for (int I = 1; I
Num [I-1] & num [I]> num [I + 1]) {return I ;}} return 0 ;}};