class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param nums int整型vector
* @return int整型
*/
int findPeakElement(vector<int>& nums) {
int n = nums.size();
int l = 0;
int r = n;
function<pair<int, int>(int)> get = [&](int i) -> pair<int, int>{
if(i == -1 || i == n)
return {0, 0};
else
return {1, nums[i]};
};
int res = -1;
while(l < r)
{
int mid = l + (r - l) / 2;
if(get(mid) > get(mid - 1) && get(mid) > get(mid + 1))
return mid;
if(get(mid) > get(mid + 1))
r = mid;
else
l = mid + 1;
}
return res;
}
};