class Solution { // review 162 O(log N) O(1)
public:
int findPeakElement(vector<int>& a) {
int n = (int) a.size(), l = 0, r = n - 1;
while(l <= r) {
int m = l + ((r - l) >> 1);
if(( m == 0 || a[m] > a[m-1]) && (m == n - 1 || a[m] > a[m + 1]))
return m;
if (m < n-1 && a[m] < a[m + 1])
l = m + 1;
else
r = m - 1;
}
return l;
}
};