题目:简单题目,专用配图(dog)
分析:这道题简单,用到栈,原理就是栈顶元素与后面的元素进行比较,如果比后面的数都大,则弹出这个元素,否则进栈下一个元素,没了,就这么简单
源码:
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;
}
最后,很简单这道题!
最后一次更新于2022-01-23
0 条评论