这道题目 海涛书上写的很经典,要是直接让我来做。
我的思路 就是也用一个辅助栈 当进入元素小于当前辅助栈最小元素时那么将其压入栈,同时记录每一个最小值压入栈的时候,栈内元素的数目
比如压栈序列为 5 7 3 8 2 1
那么辅助栈形式为 5(1)3(1)2(1)1(1) 因此我使用的是一个辅助栈 加一个辅助变量 ,因此当pop原来栈的时候 ,我进行辅助栈变量减1
5(2)3(2)
若为0 则出栈。
看了海涛的思路 豁然开朗啊,牛人就是牛人
思路就是 如果往原来的栈插入元素大于当前辅助栈最小元素 ,那么辅助栈还是push当前最小元素,太牛叉了
原栈 5 7 3 8 2 1
辅助栈 5 5 3 3 2 1