题解 | #寻找峰值#

寻找峰值

http://www.nowcoder.com/practice/fcf87540c4f347bcb4cf720b5b350c76

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型一维数组 
     * @return int整型
     */
    public int findPeakElement (int[] nums) {
        // write code here
        int len = nums.length;  //获取数组的长度
        //特殊值处理,如果数组长度为1,则第一个元素是峰值
        if(len == 1){
            return 0;
        }
        //如果数组长度为1,还有两个比较特殊的元素:第一个和最后一个,只要第一个元素比第二个元素大,即是峰值;
        if(nums[0] > nums[1]){
            return 0;
        }
        //只要倒数第一个元素比倒数第二个元素大,即是峰值;
        if(nums[len-1] > nums[len-2]){
            return len-1;
        }
        //对与数组中的第二个元素到倒数第二个元素,如果大于左右两个元素,也是峰值
        for(int i=1;i<len-1;i++){
            if(nums[i] > nums[i-1] && nums[i] > nums[i+1]){
                return i;
            }
        }
        return -1;
    }
}
全部评论

相关推荐

05-12 17:00
门头沟学院 Java
king122:你的项目描述至少要分点呀,要实习的话,你的描述可以使用什么技术,实现了什么难点,达成了哪些数字指标,这个数字指标尽量是真实的,这样面试应该会多很多,就这样自己包装一下,包装不好可以找我,我有几个大厂最近做过的实习项目也可以包装一下
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务