1.题目
2.分析
暴力可解,但是单调栈的思想也要慢慢渗透~
3.代码
1.暴力:双重循环
2.单调栈
先逆序链表,再利用单调栈,求解问题
单调栈是什么?
一般求解当前位置最近的且值比其大的第一个位置
以求解当前位置左边位置,值比其大的第一个位置为例子
5 3 4 7 2
res: 0 5 5 0 7
观察可发现,每次遍历至一个结点,都可将比其值小的结点删除[当前结点对于后续结点来说更优!]
上述问题的模拟过程
位置 栈[顶 ---> 底] 输出
1 5 0
2 3 5 5
3 4 5 [先将3弹出,4入栈] 5
4 7[依次弹出4 5 , 7再入栈] 0
5 2 7 7
4.总结
单调栈、递归、链表反转、数据存储
5.更新日志
2022.10.3
欢迎交流、讨论、指正~
不正确、不理解之处欢迎评论留言~