栈
文章平均质量分 83
石锅拌饭
新的博客在简书更新,欢迎阅读指正。
展开
-
出栈数目
题目描述 已知一个入栈序列,试求出所有可能的出栈序列数目。例如入栈序列为1,2,3,则可能的出栈序列有5种:1 2 3,1 3 2 ,2 1 3,2 3 1,3 2 1。 分析 要求解出栈序列的数目,还算比较容易的。已经有很多文章分析过这个问题,最终答案就是卡特兰数,也就是说n个元素的出栈序列的总数目=C(2n, n) - C(2n, n-1) = C(2n, n) / (n+1)原创 2012-10-05 12:42:49 · 2507 阅读 · 2 评论 -
设计包含min函数的栈
题目: 设计一个栈,使得PUSH、POP以及GetMin(获取栈中最小元素)能够在常数时间内完成。 分析: 很刚开始很容易想到一个方法,那就是额外建立一个最小堆保存所有元素,这样每次获取最小元素只需要O(1)的时间。但是这样的话,PUSH和POP操作就需要O(lgn)的时间了(假定栈中元素个数为n),不符合题目的要求。 那么用1个辅助栈如何呢? 解法: 使用一个辅助栈来保存最...原创 2012-07-16 20:45:22 · 7781 阅读 · 0 评论