当前位置: 首页 > 编程笔记 >

在C ++中查找峰值元素

池麒
2023-03-14
本文向大家介绍在C ++中查找峰值元素,包括了在C ++中查找峰值元素的使用技巧和注意事项,需要的朋友参考一下

在本教程中,我们将编写一个程序来查找给定数组中的峰元素

峰值元素是大于周围元素的元素。让我们看看解决问题的步骤。

  • 用伪数据初始化数组。

  • 检查第一个元素和最后一个元素的峰值元素状况。

  • 从第二个元素遍历数组。

    • 检查当前元素是否大于上一个元素和下一个元素。

    • 如果上述条件满足,则返回。

  • 打印结果

示例

让我们看一下代码。

#include <bits/stdc++.h>
using namespace std;
int findPeakElement(int arr[], int n) {
   if (n == 1) {
      return arr[0];
   }
   if (arr[0] >= arr[1]) {
      return arr[0];
   }
   if (arr[n - 1] >= arr[n - 2]) {
      return arr[n - 1];
   }
   for (int i = 1; i < n - 1; i++) {
      if (arr[i] >= arr[i - 1] && arr[i] >= arr[i + 1]) {
         return arr[i];
      }
   }
   return arr[0];
}
int main() {
   int arr[] = { 1, 2, 5, 4, 7 };
   cout << findPeakElement(arr, 5) << endl;
   return 0;
}
输出结果

如果运行上面的代码,则将得到以下结果。

7

结论

 类似资料:
  • 本文向大家介绍在C ++的链接列表中查找峰值元素,包括了在C ++的链接列表中查找峰值元素的使用技巧和注意事项,需要的朋友参考一下 在本教程中,我们将编写一个程序,该程序在给定的链表中查找峰值元素。 峰值元素是大于周围元素的元素。让我们看看解决问题的步骤。 为链表创建一个struct节点。 用伪数据创建链接列表。 检查基本情况,例如链表是否为空或长度为1。 将第一个元素存储在一个名为previou

  • 本文向大家介绍在C ++中查找2D数组中的峰元素,包括了在C ++中查找2D数组中的峰元素的使用技巧和注意事项,需要的朋友参考一下 在本教程中,我们将编写一个程序来查找2D数组中的峰值元素。 如果周围所有元素均小于该元素,则该元素称为峰元素。 让我们看看解决问题的步骤。 用伪数据初始化2D数组。 遍历2D数组。 首先,检查2D数组的角元素。 接下来,编写2D数组的第一行和最后一行的条件。 现在,检

  • 所以我试图解决以下问题: 给定一个整数数组。找到其中的峰值元素。如果数组元素不小于其相邻元素,则该元素为峰值。对于角元素,我们只需要考虑一个邻居。例如,对于输入数组{5,10,20,15},20是唯一的峰值元素。对于输入数组{10、20、15、2、23、90、67},有两个峰值元素:20和90。请注意,我们需要返回任何一个峰值元素。 从以下链接:http://www.geeksforgeeks.o

  • 这周我开始了MIT OCW6.006的讲座,在第一节课上教授介绍了找峰算法。 1 2 3 4 5 6 7 8 9 a-i是数字 位置2是峰当且仅当b≥a且b≥c。如果i≥h,位置9是峰值 他提出这个算法是为了提高它的复杂度: [9,8,7,6,5,2,3,1] 该算法的工作原理如下: 步骤1:A[n/2] 6<7?-->是的,看左半部分[9,8,7,6] 步骤2:A[n/2] 8<9?-->是的,

  • 问题内容: 您能告诉我是否有DOM API搜索具有给定属性名称和属性值的元素: 就像是: 问题答案: 更新: 在过去几年中,情况发生了巨大变化。现在,您可以可靠地使用和,有关如何执行操作。 现在不需要jQuery依赖项。如果您使用的是jQuery,那就太好了……如果您不使用jQuery,则不必再依赖于仅通过属性选择元素了。 在Vanilla javascript中,执行此操作的方法不是很短,但是有