描述:
山峰元素是指其值大于或等于左右相邻值的元素。给定一个输入数组nums,任意两个相邻元素值不相等,数组可能包含多个山峰。找到索引最大的那个山峰元素并返回其索引。
假设 nums[-1] = nums[n] = -∞。
示例1
输入:
[2,4,1,2,7,8,4]
返回值:
5
(题目来自牛客网)
用C++实现如下
class Solution {
public:
/**
* 寻找最后的山峰
* @param a int整型一维数组
* @param aLen int a数组长度
* @return int整型
*/
int solve(int* a, int aLen) { //传入a数组的指针,以及a数组的长度
//思路,输入的是数组a的指针,以及a数组的长度;求解的是最后一个峰值
if(aLen<1) //开始一般处理非常态的情况
return -1; //返回值是-1一般表示有异常
if(aLen==1)
return a[0];
for(int i=aLen-1;i>=0;i--){ //从后往前寻找最后的一个山峰
if(i==aLen-1){ //优先考虑最左边值和最右边值的特殊情况,此处为最右边值(最右边值大于倒数第二个,则最右为峰)
if(a[i]>a[i-1])