题解 | #寻找峰值#

寻找峰值

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-08 13:15
点赞 评论 收藏
分享
05-29 22:11
门头沟学院 Java
Elastic90:抛开学历造假不谈,这公司的招聘需求也挺怪的,Java开发还要求你有图文识别、移动端开发和c++的经验,有点逆天了。
点赞 评论 收藏
分享
湫湫湫不会java:先投着吧,大概率找不到实习,没实习的时候再加个项目,然后把个人评价和荣誉奖项删了,赶紧成为八股战神吧,没实习没学历,秋招机会估计不多,把握机会。或者说秋招时间去冲实习,春招冲offer,但是压力会比较大
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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