题目很简单
就是注意:
必须非空才能弹栈,不然会出错
偷个懒用STL啦
#include<bits/stdc++.h>
using namespace std;
int n,a;
stack<int> s;
int main() {
scanf("%d",&n);
for(register int i=1; i<=n; i++) {
scanf("%d",&a);
while(!s.empty()&&s.top()>=a) s.pop();
if(s.empty()) printf("-1 ");
else printf("%d ",s.top());
s.push(a);
}
printf("\n");
return 0;
}
是不是c++的最短题解