有的时候我们需要把字符串倒序。 比如“范坚强”的倒序就是“强坚范”。 如何对字符串进行倒序呢?你首先想到的方法就是生成一个栈,从尾到头依次取出字符串中的字符压入栈中,然后把栈连接成字符串。 其实还有一个方法。 ...
分类:
Web程序 时间:
2016-05-17 19:42:31
阅读次数:
157
题意:设计一个能输出栈内最小值的栈 该题设计两个栈,一个栈是正常的栈s,而另一个是存最小值的栈sm 在push时要判断sm是否为空,如果为空或者非空但是栈顶元素大于等于插入值的 需要在sm中插入x 同样地在pop时,s的元素被删除了,那么sm中的也应该被删除。 通过这些操作维护sm能很巧妙在O(1) ...
分类:
其他好文 时间:
2016-05-16 12:42:37
阅读次数:
178
本来画了图的,可是今天传上来的图片都看不了,只能默默敲下来了思路:队列s1和队列s2Push进来的元素压入非空队列Pop操作之后的元素放在空队列入栈:(1)s1为空,s2为空把所有数据压入s1中(2)s1为空,s2不为空数据压入s2(3)s1不为空,s2为空数据压入s2出栈:(1)s2为空把..
分类:
其他好文 时间:
2016-05-15 19:57:29
阅读次数:
172
1、两个栈实现一个队列 有三种思路: 思路一:将stack1作为存储空间,将stack2作为临时缓冲区,入队时,直接压入stac1,出队时,将stack1中的元素依次出栈压入stack2中,再将stack2的栈顶元素弹出,最后将stack2中的元素再倒回给stack1 思路二:入队时,判断stack ...
分类:
其他好文 时间:
2016-05-13 20:38:54
阅读次数:
132
JVM简介
JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就...
分类:
编程语言 时间:
2016-05-13 03:57:45
阅读次数:
136
如何用O(1)的时间复杂度求栈中最小元素解题思路:
我们经常会采用空间换取时间提高时间复杂度。我们可以使用两个栈结构,一个栈用来存储数据,另一个栈用来存储栈中的最小元素。思路如下:如果当前入栈的元素比原来栈中的最小值还小,则把这个值压入保存最小元素的栈中;在出栈时,如果当前入栈的元素恰好为当前栈中的最小值,保存最小值的栈顶元素也出栈,使得当前最小值变为其入栈之前的那个最小值。
实现代码如下:pa...
分类:
编程语言 时间:
2016-05-13 03:06:07
阅读次数:
162
题目:请实现一种数据结构SetOfStacks,由多个栈组成,其中每个栈的大小为size,当前一个栈填满时,新建一个栈。该数据结构应支持与普通栈相同的push和pop操作。
给定一个操作序列int[][2] ope(C++为vector>),每个操作的第一个数代表操作类型,若为1,则为push操作,后一个数为应push的数字;若为2,则为pop操作,后一个数无意义。请返回一个int[][]...
分类:
其他好文 时间:
2016-05-12 17:17:42
阅读次数:
184
首先说明,"java中的基本数据类型一定存储在栈中的吗?”这句话肯定是错误的。
栈:虚拟机栈:执行java方法是分配的内存模型。方法运行分配一个栈帧用于存放局部变量表,操作数栈、动态链接、方法出口等信息。。局部变量表存放了编译期可知的各种基本数据类型、对象引用类型,存放了指向实际对象的地址或者句柄位置
下面让我们一起来分析一下原因:
基本数据类型是放在栈中还是放在堆中,这...
分类:
编程语言 时间:
2016-05-12 16:31:58
阅读次数:
221
时间:2016-05-11 14:16:50 星期三 题目编号:[2016-05-11][51nod][1134 最长递增子序列] 题目大意:给出长度为N的数组,找出这个数组的最长递增子序列。(递增子序列是指,子序列的元素是递增的) 分析: 维护一个栈,如果是更大值,加入栈顶,否则,替换栈内第一个不... ...
分类:
其他好文 时间:
2016-05-11 14:53:51
阅读次数:
141