峰值元素是指其值大于左右相邻值的元素。
给定一个输入数组,其中 num[i] ≠ num[i+1],找到峰值元素并返回其索引。
数组可能包含多个峰值,在这种情况下,返回到任何一个峰值所在位置都可以。
你可以想象得到 num[-1] = num[n] = -∞。
例如,在数组 [1, 2, 3, 1]中 3 是峰值元素您的函数应该返回索引号2。
注意:
你的解决方案应该是对数复杂度的。
详见:https://leetcode.com/problems/find-peak-element/description/
class Solution { public: int findPeakElement(vector<int>& nums) { int size=nums.size(); if(size==0||nums.empty()) { return -1; } int left=0; int right=size-1; int mid=0; while(left<right) { mid=(left+right)/2; if(nums[mid]<nums[mid+1]) { left=mid+1; } else { right=mid; } } return right; } };
原文地址:https://www.cnblogs.com/xidian2014/p/8728346.html
时间: 2024-10-13 06:43:38