未古其人

目录

找峰值

题面

给你一个下标从 0 开始的数组 mountain 。你的任务是找出数组 mountain 中的所有 峰值。
以数组形式返回给定数组中 峰值 的下标,顺序不限 。
注意:
峰值 是指一个严格大于其相邻元素的元素。
数组的第一个和最后一个元素 不 是峰值。
示例 1:
输入:mountain = [2,4,4]
输出:[]
解释:mountain[0] 和 mountain[2] 不可能是峰值,因为它们是数组的第一个和最后一个元素。
mountain[1] 也不可能是峰值,因为它不严格大于 mountain[2] 。
因此,答案为 [] 。

代码

function findTop (input) {

	const tops = [];

	for (let i = 1; i < input.length - 1; i++) {
		let at = input[i];
		let prev = input[i - 1];
		let next = input[i + 1];

		if (at > prev && at > next) {
			tops.push(i);
		};
	}

	return tops;
}

评价

如果我脑子没理解错,应该就这样可以了吧(深深怀疑中)……