在一系列值中查找局部最大值

Joh*_*Doe 2 arrays algorithm

我们可以使用什么算法在随机生成的长度为10的值数组中找到局部最大值?

我当前的策略是将数组分解为3并找到每个子集数组的最大元素,但这不包括所有最大值.

线形图

理想情况下,我希望第一个点也被识别为局部最大值,而左边的第三个红点不应该被标记为这样.

Duk*_*ing 8

只需浏览所有索引并将该元素与两侧的两个元素进行比较,跳过检查是否在边缘.

伪代码:

for each index
  if     (index == 0              or array[index-1] < array[index])
     and (index == array.length-1 or array[index+1] < array[index])
  {
    store index
  }
Run Code Online (Sandbox Code Playgroud)