class Solution { public: // 可以先用滑动窗口 O(N) /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型vector * @return int整型 */ int findPeakElement(vector<int>& nums) { // write code here int n = nums.size(); int ans = -1; if(n<3) { if(n==1) return 0; if(n==2) { // 最大值所在位置 return nums[0]<nums[1] ? 1 :0; } } // 判断两端 if(nums[0]>nums[1]) { return 0; } if(nums[n-1]>nums[n-2]) { return n-1; } // 一般情况用滑动窗口 int right = 2; while(right<n) { if(nums[right-2]<nums[right-1] && nums[right-1]>nums[right]) return right-1; right++; } return ans; } };