题目:简单题目,专用配图(dog)
IUQK9YF[)GY{{IDEYMLP[CO.jpg
OA@~ZESC~9(O0KT`NA}MOLW.png
分析:这道题简单,用到栈,原理就是栈顶元素与后面的元素进行比较,如果比后面的数都大,则弹出这个元素,否则进栈下一个元素,没了,就这么简单
源码:

include <bits/stdc++.h>

using namespace std;
int b=0;
int main(void)
{

stack<int>stk;
int n;
cin>>n;
int arr[n];
for(int i=0;i<n;i++)
{
    cin>>arr[i];
}
stk.push(arr[0]); 
for(int i=0;i<n-1;i++)
{
    int a=0;
    for(int j=i+1;j<n;j++)
    {
        if(stk.top()>arr[j])
        {
            a++;
        }
    }
    if(a==(n-1-i))
    {
        int c=stk.top();
        stk.pop();
        b++;
        cout<< c <<" ";
        stk.push(arr[i+1]);
    }else
    {
        stk.push(arr[i+1]);
    }
}
b=stk.size();  //注意这个,我第一次没设置的时候,一直输出不对,发现,stk.size()会变化,是一个变化的值,所以下面的循环只能用当前的长度值;
for(int i=0;i<b;i++)
{
    int c=stk.top();
    stk.pop();
    cout<<c<<" ";
}
return 0;

}
最后,很简单这道题!