1、最小栈问题
-思路1:漫画最小栈,“数组实现” 的方法:http://blog.jobbole.com/106940/
关键要认识到栈是先入后出的,这个特定: 那么当前最小值的 “后面进来的栈元素” 即使各种pop,当前最小值也不会变。
对于文章加一个补充:如果不允许下标操作的话再存储一个栈B对应的实际数据
-思路2:上述链接文章的评论中还有一个 “链表实现” 的方法:http://www.programcreek.com/2014/02/leetcode-min-stack-java/
这个“链表实现” 的方法对各种类似的问题,如最大栈,最大队列等等都适用,缺点是空间开销比第1种略大
-延伸问题:最小队列
“数组实现”的思路与最小栈类似,抓住最小队列是先入先出特点,那么:两个最小值之间的元素都不必考虑