题解 | #寻找峰值#

寻找峰值

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

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param nums int整型一维数组
     * @return int整型
     */
    public int findPeakElement (int[] nums) {
        // write code here
        //nums[-1] = nums[n] = -无穷大
        // nums[i] != nums[i + 1]
        int len = nums.length;
        if (len == 1) return 0;
        //排除开头俩和结尾俩
        if (nums[0] > nums[1]) return 0;
        if (nums[len - 2] < nums[len - 1]) return len - 1;
        //锁定范围为[1, len-2]
        int ans = 1;
        while (ans <= len - 2) {
            int aa = nums[ans - 1];
            int bb = nums[ans];
            int cc = nums[ans + 1];
            if (aa < bb) {
                if (bb > cc) {
                    return ans;
                } else {
                    ans++;
                }
            } else {
                if (bb > cc) {
                    ans += 2;
                } else {
                    ans++;
                }
            }
        }
        return -1;
    }
}

全部评论

相关推荐

2025-12-15 11:27
门头沟学院 Java
哇哇的菜鸡oc:所有人不要理会,就好了,后面他就知道怎么回事了,只能说有的时候市场都是被宰的人搞坏的
点赞 评论 收藏
分享
01-19 12:48
门头沟学院 C++
只想搞钱的鸽子很喜欢...:混账是很多的,还有那些在自己风华正茂的年纪说风凉话讥讽那些下岗前员工的。这些人都是现在职场环境这么烂的帮凶
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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