arrays - 在值序列中找到局部最大值

标签 arrays algorithm

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

我目前的策略是将数组分成 3 份并找到每个子集数组的最大元素,但这不包括所有最大值。

Line graph

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

最佳答案

只需遍历所有索引并将该元素与两边的两个元素进行比较,如果它在边缘则跳过检查。

伪代码:

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
  }

关于arrays - 在值序列中找到局部最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23341602/

相关文章:

c++ - 查找汉明数 - 不是代码或距离

arrays - 二维数组的计数算法

c - 如何在函数内为数组分配内存

c# - DefaultIfEmpty 不起作用

java - 迭代数组的排列

algorithm - 记忆化在最长公共(public)子序列递归求解中的优势

java - 迭代减少到空矩阵

arrays - 数组上的 Lua 展开运算符

javascript - jQuery 使用 .each( ) 循环遍历 .hover( ) 函数

c++ - 在类中声明一个数组。 C++