题目描述
给定一个数组, 找到每个元素右边第一个比它大的元素。
输入
第一行一个整数n,表示数组大小,
接下来一行n个正整数,表示数组中的元素值。
数据范围:n<=100000, 数组中元素值不超过1000000000。
输出
输出一行n个整数
表示每个元素右边第一个比它大的元素,如果没有输出-1。
样例输入
4
2 1 3 4
样例输出
3 3 4 -1
#include<iostream> using namespace std; int main() { int b=0,n; cin>>n; int *a=new int[n]; for(int i=0;i<n;i++ ) cin>>a[i]; for(int i=0;i<n-1;i++) { for(int j=i+1;j<n;j++) { if(a[j]>a[i]) { cout<<a[j]<<" "; break; } else if(j==n-1) cout<<-1<<" "; } } cout<<-1; delete a; a=NULL; return 0; }