单调栈
-
求左边最小最近的数的值 没有返回-1
-
将左边数存入栈(数组模拟) 若stk[tt] >=x 说明大于当前值 tt–
-
利用栈的先进后出特性 能找到左边最近的
-
#include<iostream>using namespace std;const int N=100010;int skt[N],tt;int main(){int n;cin>>n;for(int i=0;i<n;i++){int x;cin>>x;//如果大于x 就--while(tt && skt[tt] >= x) tt--;//找到小于的 输出if(tt) cout<<skt[tt]<<" ";else cout<<-1<<" ";//将x存入skt[++tt] = x;}}
-