题解 | #寻找峰值#

寻找峰值

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

import java.util.*;


public class Solution {
    public int findPeakElement(int[] nums) {
        int length = nums.length;
        if (length < 0) return -1;
        if (length == 1) return 0;
        if (nums[0] > nums[1]) return 0; // Check for the first element
        if (nums[length - 1] > nums[length - 2]) return length -
                    1; // Check for the last element

        for (int i = 1; i < length - 1; i++) {
            if (nums[i] > nums[i - 1] && nums[i] > nums[i + 1]) {
                return i;
            }
        }
        return -1;
    }
}

思路很简单,就是连着比较(nums[i] > nums[i - 1] && nums[i] > nums[i + 1],只要处理好数组为空,数组开头和数组结尾的特殊情况即可了。

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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