码迷,mamicode.com
首页 >  
搜索关键字:一个栈    ( 1020个结果
用数组实现3个栈之固定分割(Java)
摘自《程序员面试金典》我们首先最容易想到的就是固定分割的方法:将数组等分为3分,每一份均可以被看做一个栈,然后可以在每个栈上执行出入栈的操作。这种方法优点是比较直接,实现简单。当然缺点是不够灵活,有可能一个栈出现了空间溢出的情况,而其他栈还是空的状态。 下面说下实现的思路,首先对于长度为n的数...
分类:编程语言   时间:2015-07-29 11:49:37    阅读次数:109
!HDU 4283 屌丝联谊会-区间dp
题意:一群屌丝排队参加联谊,每个人都有屌丝值,如果他是第k个进场的,那么他的愤怒值就是(K-1)*Di,主办方想使所有屌丝的愤怒值总和最小,就用一个黑屋子来改变屌丝的进场顺序,黑屋子实际上是一个栈,先进后出。现在要求用这个栈能得到的最小的愤怒值总和是多少。 分析: 难点在于你不知道用了多少次黑屋子、用在哪些人身上以及每次各自进黑屋子的人数。很容易知道每个决策都会影响最终结果,那么我们就想用dp...
分类:其他好文   时间:2015-07-28 01:01:40    阅读次数:154
函数调用堆栈(转)
这几天突然很想弄明白c函数调用时栈的使用情况,上网查了一下资料,自已也研究了一下,这篇blog就把我的所得记录下来吧。这篇blog试图讲明当一个c函数被调用时,一个栈帧(stack frame)是如何被建立,又如何被消除的。这些细节跟操作系统平台及编译器的实现有关,下面的描述是针对运行在Intel奔...
分类:其他好文   时间:2015-07-27 18:27:38    阅读次数:117
leetcode笔记:Remove Element
Remove Element这道题和Remove Duplicates from Sorted Array类似,不同的是这里只要删除值等于给定值的元素即可,可以采用和前面的题相同的做法:可以将原来的数组看作一个栈,设定一个栈顶指针,在对数组进行遍历的时候,判断元素是否等于给定值,如果等于,则直接进行数组的下一个元素,如果不等于,则将该元素放入到栈顶,然后更新指针并处理数组的下一个元素。...
分类:其他好文   时间:2015-07-26 15:50:52    阅读次数:132
【剑指offer】两个队列实现堆栈
转载请注明出处:http://blog.csdn.net/ns_code/article/details/25076689 题目:用两个队列模拟一个栈,即用两个队列的出队和入队操作。来实现栈的出栈和入栈操作。 思路:略微画下草图。便不难想出该题的解决方法。思路例如以下: 如果有两个队列Q1和Q...
分类:其他好文   时间:2015-07-25 16:36:14    阅读次数:136
续前篇-关于逆波兰表达式的计算
相对于逆波兰表达式的转换,逆波兰表达的计算可谓简单不少。具体计算方法参考:http://www.cnblogs.com/vpoet/p/4659546.html这里也大致梳理一下:1.新建一个栈将逆波兰表达式的数字依次压入栈中2.当遇到运算符时,出栈两个数同时将运算结果压栈3.重复步骤2直到计算计算...
分类:其他好文   时间:2015-07-25 00:03:28    阅读次数:209
hdu3410 Passing the Message 单调栈
// hdu3410 Passing the Message 单调栈 // 题目意思:给你n个数,询问第i个数直到左边比它本身大的第一个数的这段 // 区间内求一个最大的值 和 直到右边比它本身大的数的第一个数的这段区间内 // 再求一个最大值。 // 解题方法: // 单调栈,维护一个栈,使得站内元素单调递减即离栈顶越近,值越小 // 从左往右扫一遍,最后一个比当前元素小的数组下标(出栈的元...
分类:其他好文   时间:2015-07-23 21:51:07    阅读次数:123
[CTCI] 双栈排序
双栈排序题目描述请编写一个程序,按升序对栈进行排序(即最大元素位于栈顶),要求最多只能使用一个额外的栈存放临时数据,但不得将元素复制到别的数据结构中。给定一个int[]numbers(C++中为vector),其中第一个元素为栈顶,请返回排序后的栈。请注意这是一个栈,意味着排序过程中你只能访问到第一...
分类:编程语言   时间:2015-07-18 15:28:53    阅读次数:152
PHP使用数组实现队列(实际就是先进先出如何实现)
PHP的数组处理函数还可以将数组实现队列,堆栈是“先进后出”。在堆栈中,最后压入的数据(进栈),将会被最先弹出(出栈)。而队列是先进先出,就如同银行的排号机 PHP中将数组当做一个栈,主要是使用array_push()和array_pop()两个系统函数来完成。入栈主要是利用array_push()函数向第一个参数的数组尾部添加一个或多个元素,然后返回新数组的长度,示例如...
分类:编程语言   时间:2015-07-16 16:47:50    阅读次数:201
[Leetcode]Basic Calculator II
//取vector作为一个栈,然后不断读取和pop。先把乘积或商算好再存入栈中 //ps.好久没有不参考别的直接自己写出AC代码了...各种bug...果然要好好练... //1.考虑空格情况;2.考虑数位情况;3.考虑index的边界情况 class Solution { public:     int calculate(string s) {         int len=s....
分类:其他好文   时间:2015-07-16 14:10:51    阅读次数:104
1020条   上一页 1 ... 78 79 80 81 82 ... 102 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!