C++ 寻找数组中右边第一个更大的元素

本文将介绍如何使用 C++ 代码找到数组中每个元素右边第一个比它大的元素。

问题描述

给定一个数组,我们需要找到数组中每个元素右边第一个比它大的元素。

例如,对于数组 [4, 5, 2, 25, 7, 8],结果应该是:

  • 4 的右边第一个更大的元素是 5* 5 的右边第一个更大的元素是 25* 2 的右边第一个更大的元素是 25* 25 的右边第一个更大的元素是 -1 (不存在)* 7 的右边第一个更大的元素是 8* 8 的右边第一个更大的元素是 -1 (不存在)

代码实现

以下是使用 C++ 实现该功能的代码:cpp#include using namespace std;

int main(){ int n = 0; long a[101]; cin >> n; for (int i = 1; i <= n; i++) cin >> a[i];

for (int i = 1; i <= n; i++)    {        int m = 0;        for (int j = i + 1; j <= n; j++)        {            if (a[j] > a[i])            {                m = j;                break;            }        }        cout << m << ' ';    }

return 0;}

代码解释

  1. 输入: 代码首先从用户处获取数组的大小 n,然后读取数组元素并将其存储在数组 a 中。

  2. 查找右边第一个更大的元素: 代码使用嵌套循环遍历数组。外层循环遍历数组中的每个元素 a[i]。内层循环从 i + 1 开始,查找比 a[i] 更大的第一个元素。如果找到,则将该元素的索引存储在 m 中,并跳出内层循环。如果内层循环完成而没有找到更大的元素,则 m 保持为 0。

  3. 输出: 对于每个元素 a[i],代码输出 m 的值。如果 m 为 0,则表示 a[i] 右边没有更大的元素。

总结

本文介绍了如何使用 C++ 代码查找数组中每个元素右边第一个更大的元素。我们提供了详细的代码解释,并使用示例演示了代码的工作原理。

C++ 寻找数组中右边第一个更大的元素

原文地址: https://www.cveoy.top/t/topic/Ror 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录