C++ 寻找数组中右边第一个更大的元素
C++ 寻找数组中右边第一个更大的元素
本文将介绍如何使用 C++ 代码找到数组中每个元素右边第一个比它大的元素。
问题描述
给定一个数组,我们需要找到数组中每个元素右边第一个比它大的元素。
例如,对于数组 [4, 5, 2, 25, 7, 8],结果应该是:
- 4 的右边第一个更大的元素是 5* 5 的右边第一个更大的元素是 25* 2 的右边第一个更大的元素是 25* 25 的右边第一个更大的元素是 -1 (不存在)* 7 的右边第一个更大的元素是 8* 8 的右边第一个更大的元素是 -1 (不存在)
代码实现
以下是使用 C++ 实现该功能的代码:cpp#include
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;}
代码解释
-
输入: 代码首先从用户处获取数组的大小
n,然后读取数组元素并将其存储在数组a中。 -
查找右边第一个更大的元素: 代码使用嵌套循环遍历数组。外层循环遍历数组中的每个元素
a[i]。内层循环从i + 1开始,查找比a[i]更大的第一个元素。如果找到,则将该元素的索引存储在m中,并跳出内层循环。如果内层循环完成而没有找到更大的元素,则m保持为 0。 -
输出: 对于每个元素
a[i],代码输出m的值。如果m为 0,则表示a[i]右边没有更大的元素。
总结
本文介绍了如何使用 C++ 代码查找数组中每个元素右边第一个更大的元素。我们提供了详细的代码解释,并使用示例演示了代码的工作原理。
原文地址: https://www.cveoy.top/t/topic/Ror 著作权归作者所有。请勿转载和采集!