题解 | #寻找峰值#

寻找峰值

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


#笔试刷题#
全部评论

相关推荐

我在朝九晚六双休的联想等你:如果我是你,身体素质好我会去参军,然后走士兵计划考研211只需要200多分。
点赞 评论 收藏
分享
dongsheng66:如果想进大厂的话,在校经历没必要占这么大篇幅,可以把专业技能单独放一个专栏写,可以加个项目经历
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务