一、题目&解读
1、题目2、题目解读 二、思路
1、判断条件 三、AC代码四、总结
前言
你好阿,我最近在学acwing的算法基础课,备战蓝桥杯,如果你也是一样的话,欢迎一起学习~
一、题目&解读 1、题目
题目链接{点击跳转}
输出每个数左边第一个比它小的数 ,符合单调栈的模板
单调栈:相当于一个容器 存储的数据具有单调性 如果不符合的数据将会被弹出。
算法模板
常见模型:找出每个数左边离它最近的比它大/小的数int tt = 0;for (int i = 1; i <= n; i ++ ){ while (tt && check(stk[tt], i)) tt -- ; stk[ ++ tt] = i;}
二、思路 借用老哥的图
该题的判断条件如下:
top &&stk[top]>=x :如果栈顶大于x 则将栈顶弹出
时间复杂度O(n)
#include
学数据结构 最主要的还是要画图,先画一遍,代码自然就能够写了。
结尾:
感谢你能看完,希望对你有帮助 ,如有错误欢迎指正,码字不易,给个赞呗