码迷,mamicode.com
首页 >  
搜索关键字:一个栈    ( 1020个结果
关于Catalan数
问题的由来:编号为1到n的n个元素,顺序的进入一个栈,则可能的出栈序列有多少种?对问题的转化与思考:n个元素进栈和出栈,总共要经历n次进栈和n次出栈。这就相当于对这2n步操作进行排列。问题等价于:n个1和n个0组成一2n位的2进制数,要求从左到右扫描,1的累计数不小于0的累计数,试求满足这条件的数有...
分类:其他好文   时间:2014-08-29 19:50:48    阅读次数:271
【LeetCode】Evaluate Reverse Polish Notation
【题意】 逆波兰表达式,又叫后缀表达式。 例如: ["2", "1", "+", "3", "*"] -> ((2 + 1) * 3) -> 9 ["4", "13", "5", "/", "+"] -> (4 + (13 / 5)) -> 6 【思路】 用一个栈存储操作数,遇到操作数直接压入栈内,遇到操作符就把栈顶的两个操作数拿出来运算一下,然后把运算结果放入栈内。 【Jav...
分类:其他好文   时间:2014-08-28 21:13:36    阅读次数:247
014写程序将一个栈按升序排序,对这个栈是如何实现的,你不应该做任何特殊的假设(keep it up)
写程序将一个栈按升序排序。对这个栈是如何实现的,你不应该做任何特殊的假设。 程序中能用到的栈操作有:push | pop |isEmpty 最容易想到的就是优先队列来做此题,容易实现。 另外我们可以再用一个栈来实现栈的升序排列。 优先队列: //优先队列来实现 void sortStack(std::stack& vStk) { std::priority_queue, std::gr...
分类:其他好文   时间:2014-08-28 02:07:58    阅读次数:197
PHP学习笔记六【方法-递归】
2) { abc(--$n); } echo '$n='.$n.''; } abc(4); //输出 2 2 3 每次遇到函数调用就会开辟一个栈空间?>
分类:Web程序   时间:2014-08-28 00:44:28    阅读次数:282
013使用两个栈实现一个队列(keep it up)
使用两个栈实现一个队列 队列是先进先出的数据结构(FIFO),栈是先进后出的数据结构(FILO),  用两个栈来实现队列的最简单方式是:进入队列则往第一个栈压栈,  出队列则将第一个栈的数据依次压入第二个栈,然后出栈. 两条规则: 1)进队列,则直接压入第一个栈 2)出队列,若果第二个栈不为空,直接pop(),如过第二个栈为空, 则把第一个栈中的数据全部压入第二个栈(第一个栈此时为空...
分类:其他好文   时间:2014-08-27 01:40:37    阅读次数:230
Codefroces 223A - Bracket Sequence【栈优化】
题目大意: 有一串只含有 "("  ")"  "["  "]" 的序列,问在该序列的 左右括号能分别配对的 所有子串中的含有方括号的个数的最大值,并输出相对应的子串。 做法: 利用一个栈来维护,每次如果有能与栈顶的元素配对的右边括号时,将该元素弹出,如果此时弹出的元素代表方括号,那么记录此时出现的下标。否则将该元素压进栈。 当然我们压进栈的是当前元素的下标。当处理完整个序列之后...
分类:其他好文   时间:2014-08-26 17:30:46    阅读次数:151
UVa 10534 Wavio Sequence ( DP 二分 最长递增子序列 )
题意  求一个序列a某一位的最长递增序列(lis)和最长递减序列(lds)中最小值的最大值 开始直接用DP写了   然后就超时了  后来看到别人说要用二分把时间复杂度优化到O(n*logn)   果然如此   用一个栈s保存长度为i的LIS的最小尾部s[i]  top为栈顶即当前LIS的长度  初始s[1]=a[1]  top=1 遍历整个序列  当a[i]>s[top]时  a[i]入栈 ...
分类:其他好文   时间:2014-08-25 17:10:14    阅读次数:258
菜鸟入门之lua与c++相互调用(包含多个demo)
前两篇文章中,已经介绍了使用vs2010编译lua5.1源码生成lua.lib 和 vs项目中使用c++调用lua,可以保证demo在vs上运行起来了。这里再详细介绍下c++和lua之间的相互调用以及原理。 c++与lua直接的调用,实际上通过一个栈结构来传递数据,该栈结构栈顶的索引值为-1,向栈底方向索引值依次为-1 ,-2......栈顶索引为1.栈结构里可以放函数,表,字符串,整形等各种l...
分类:编程语言   时间:2014-08-24 11:40:52    阅读次数:290
uva 12096 - The SetStack Computer(STL)
题目链接:uva 12096 - The SetStack Computer 题目大意:一个栈,有5种操作; PUSH:向栈中放一个空集合。DUP:复制栈顶集合。UNION:取栈顶的两个集合,取并集后放回。INTERSECT:取栈顶的两个集合,取交集后放回。ADD:取栈顶两个集合,将第一个集合作为元素放到第二个集合中,并将第二个集合放回栈。 每次操作后输出栈定集合中元素的个数。...
分类:其他好文   时间:2014-08-24 00:22:41    阅读次数:288
011实现一个栈,除了push和pop操作,还要实现min函数以返回栈中的最小值,时间复杂度都为O(1)(keep it up)
实现一个栈,除了push和pop操作,还要实现min函数以返回栈中的最小值。  push,pop和min函数的时间复杂度都为O(1)。 看到这个题目最直接的反应是用一个变量来保存当前栈的最小值,让我们来看看这样可行否? 如果栈一直push那是没有问题,入栈元素如果比当前最小值还小,那就更新当前最小值。  可是如果pop掉的栈顶元素就是最小值,那么我们如何更新最小值呢?显然不太好办。...
分类:其他好文   时间:2014-08-22 22:38:01    阅读次数:176
1020条   上一页 1 ... 94 95 96 97 98 ... 102 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!