LC每日一题|20240528 - 2951. 找出峰值

79 阅读1分钟

LC每日一题|20240528 - 2951. 找出峰值

给你一个下标从 0 开始的数组 mountain 。你的任务是找出数组 mountain 中的所有 峰值

以数组形式返回给定数组中 峰值 的下标,顺序不限

注意:

  • 峰值 是指一个严格大于其相邻元素的元素。
  • 数组的第一个和最后一个元素 是峰值。

提示:

  • 3 <= mountain.length <= 100
  • 1 <= mountain[i] <= 100

题目等级:Easy

解题思路

翻译题,简单模拟~

AC代码

class Solution {
    fun findPeaks(mountain: IntArray): List<Int> {
        val res = ArrayList<Int>()
        for (i in 1 until mountain.size - 1) {
            if (mountain[i] > mountain[i - 1] && mountain[i] > mountain[i + 1]) res.add(i)
        }
        return res
    }
}

时间复杂度:O(n),一次遍历。

空间复杂度:O(1),返回值不计入复杂度。