题解 | 寻找峰值

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型一维数组 
     * @return int整型
     */
    public int findPeakElement (int[] nums) {
	  // 如果只有1个元素,直接返回0
        if(nums.length == 1) {
            return 0;
        }
	  // 如果只有2个元素,哪个元素大返回哪个元素的索引
        if(nums.length == 2) {
            return nums[0] > nums[1] ? 0 : 1;
        }

        for(int i = 0; i < nums.length; i++) {
		  // 当且仅当第一个元素大于第二个元素的时候,直接返回0
            if(i == 0) {
                if(nums[i] > nums[i + 1]) {
                    return i;
                } else {
                    continue;
                }
            }
		  // 当且仅当最后元素大于前一个元素的时候,直接返回最后一个元素的索引
            if(i == nums.length - 1 && nums[nums.length - 1] > nums[nums.length - 2]) {
                return nums.length - 1;
            }
		  // 当元素既不是第一个也不是最后一个的时候,如果当前元素大于前一个元素并且大于后一个元素的时候,返回当前元素的索引
            if(nums[i] > nums[i - 1] && nums[i] > nums[i + 1]) {
                return i;
            }
        }
        return -1;
    }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-01 17:00
点赞 评论 收藏
分享
zYvv:双一流加大加粗再标红,然后广投。主要是获奖荣誉不够,建议开始不用追求大厂,去别的厂子刷下实习。
点赞 评论 收藏
分享
码农索隆:这种hr,建议全中国推广
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务