首页 > 技术文章 > 算法题目小览1

JesusAlone 2016-11-28 10:59 原文

1、最小栈问题

-思路1:漫画最小栈,“数组实现” 的方法:http://blog.jobbole.com/106940/

            关键要认识到栈是先入后出的,这个特定: 那么当前最小值的 “后面进来的栈元素” 即使各种pop,当前最小值也不会变。

    对于文章加一个补充:如果不允许下标操作的话再存储一个栈B对应的实际数据

-思路2:上述链接文章的评论中还有一个 “链表实现” 的方法:http://www.programcreek.com/2014/02/leetcode-min-stack-java/

            这个“链表实现” 的方法对各种类似的问题,如最大栈,最大队列等等都适用,缺点是空间开销比第1种略大

-延伸问题:最小队列

“数组实现”的思路与最小栈类似,抓住最小队列是先入先出特点,那么:两个最小值之间的元素都不必考虑

推荐阅读