题解 | #寻找峰值#

寻找峰值

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

题目其实都不难,主要是题目描述不够清晰,其中有些边界情况是合法的,比如只有一个的场景下是满足 峰值 逻辑的,由此可知,当一个元素的索引是边界值时,是需要判断峰值情况的
    public int findPeakElement(int[] nums) {
        // write code here
        // 第一个和最后一个肯定都不是,从第二个开始判断,元素个数小于3的肯定不行
        if (nums == null || nums.length == 1) {
            return -1;
        }
        for (int i = 1; i < nums.length; i++) {
            int cur = nums[i];
            int pre = nums[i - 1];
            int afterIndex = i + 1;
            if (afterIndex == nums.length) {
                if (cur > pre) {
                    return i;
                }
            } else {
                int after = nums[afterIndex];
                if (cur > pre && cur > after) {
                    return i;
                }
            }
        }
        return -1;
    }


#笔试刷题#
全部评论

相关推荐

07-21 18:43
门头沟学院 Java
是暑期都招满了吗
ANEOY:今年感觉真是后端地狱级难度了,从暑期就是这样,前端需求非常大
点赞 评论 收藏
分享
牛客刘北:如果暑期实习是27届的话,你要晚一年才会毕业,企业为什么会等你呢?要搞清时间逻辑呀!27届现在实习只能是在暑假实习,这是日常实习,不是暑期实习。所以多去投日常实习吧,暑期实习肯定不会要你的
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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