class Solution { // 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;
}
};