- step 1:使用一个栈记录进入栈的元素,正常进行push、pop、top操作。s1
- step 2:使用另一个栈记录每次push进入的最小值。s2
- step 3:每次push元素的时候与第二个栈的栈顶元素比较,若是较小,则进入第二个栈,若是较大,则第二个栈的栈顶元素再次入栈,因为即便加了一个元素,它依然是最小值。于是,每次访问最小值即访问第二个栈的栈顶。
-
-1 2 -3 4
- s1 正常入栈 做一个辅助s2同步记录最小值
- 4 -3
- -3 -3
- 2 -1
- -1 -1
- s2就是当前s1为当前状态时,最小值是什么,所以pop s1 时,s2也要做同步操作