在 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

结论

如果您对本教程有任何疑问,请在评论区留言。

更新日期: 01-Feb-2021

250 次浏览

开启你的 职业生涯

完成课程获得认证

开始
广告