山峰元素是指其值大于或等于左右相邻值的元素。给定一个输入数组nums,任意两个相邻元素值不相等,数组可能包含多个山峰。找到索引最大的那个山峰元素并返回其索引。
假设 nums[-1] = nums[n] = -∞。
由于题干要求寻找索引最大的那个山峰元素,所以可以将数组从后往前遍历,去掉数组的头尾,将数组的最后一位单独进行判断。
先判断头,符合就输出尾,不符合就往中间遍历,其中一旦符合就输出其索引并结束程序,若都不符合就返回头(0)。
代码:
**import java.util.*; **public class Solution { ** /**** ** * 寻找最后的山峰 ** * @param a int整型一维数组 ** * @return int整型 ** */ ** public int solve (int[] a) { // 判断数组尾部 ** if(a[a.length - 1] > a[a.length - 2]){ ** return a.length - 1; ** } ** // 判断数组中间 // 注意是从数组的倒数第二个元素开始遍历到正数第二个元素 ** for(int i = a.length - 2; i > 0; i--){ ** if(a[i] > a [i + 1] && a[i] > a[i - 1]){ ** return i; ** } ** } ** return 0; ** } **}