题解 | #寻找峰值#

寻找峰值

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;
    }


#笔试刷题#
全部评论

相关推荐

嵐jlu:我是山川🐔里🐔🧱的,阿里系简历全过; 你这简历一看就还是半成品啊,没有荣誉经历奖项什么的吗?
投递阿里巴巴集团等公司10个岗位
点赞 评论 收藏
分享
06-12 16:23
已编辑
小米_软件开发(准入职员工)
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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