题目描述
注意点都在注释中.
算法1
(暴力枚举) $O(n^2)$
C++ 代码
//注意:
//前置递增(++ tt)先对变量进行++,再计算表达式,后置递增(tt ++)相反
#include <iostream>
using namespace std;
const int N = 100010;
int stk[N], tt;
int main()
{
int n;
scanf("%d",&n);
while (n --)
{
int x;
scanf("%d",&x);
while (tt && stk[tt] >= x) tt --; // 当 递增或递减对象单独出现时,前置或后置都无所谓.
if (!tt) printf("-1 "); //但是 当递增或递减对象出现在表达式中时,要特别注意.
else printf("%d ",stk[tt]);
stk[++ tt] = x;
}
return 0;
}