山峰元素是指其值大于或等于左右相邻值的元素。给定一个输入数组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;
** }
**}
京公网安备 11010502036488号