一、题目:仅用递归函数和栈操作逆序一个栈 将一个栈里面的元素逆序,只能用递归函数来实现,不能用其他数据结构。 思路: 为了将栈逆序,只需要按顺序将栈顶至栈底的元素拿出并移除,放置到栈顶中,这样就可以将栈逆序。 两个递归函数: 一个将栈底元素取出。 一个将剩下的栈元素逆序。 如: 输入栈{1, 2, ...
分类:
其他好文 时间:
2018-09-23 15:11:05
阅读次数:
133
一,总览 Java Virtual Machine Stacks,线程私有,生命周期与线程相同,描述的是Java方法执行的内存模型:每一个方法执行的同时都会创建一个栈帧(Stack Frame),由于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法的执行就对应着栈帧在虚拟机栈中的入栈,... ...
分类:
其他好文 时间:
2018-09-22 21:57:17
阅读次数:
255
这一类问题要考察的核心其实是元素进出栈、队列的规则。 拿栈来说,元素进出的顺序是相反的,先进后出,FILO。运用这个特性,我们可以把一个栈的全部元素逆序移至另一个栈。 举例来说,有一组元素排成序列abcd,保存在栈X中,其中d为栈顶元素,a为栈底元素。另外还有一个栈Y,是空的。当我们把序列中的元素逐 ...
分类:
其他好文 时间:
2018-09-22 18:16:35
阅读次数:
162
题目 一个栈的元素为整型,现在想将该栈的从栈顶到底按从小到大的顺序排序,只许申请一个栈。除此之外,可以申请新变量,但不能申请额外的数据结构。 难度 ? 思路 选择一个stack.pop()弹出的栈(旧栈)顶元素作为比较值,装入到一个新的栈中 用新栈的栈顶值比较旧栈再弹出的值 如果新栈的值 大于 旧栈 ...
分类:
编程语言 时间:
2018-09-19 21:52:30
阅读次数:
155
题目大意: n个火车站,每个火车站可以看成是一个栈 每个火车有一个权值 现在回发生m件事 事件可以概括成一下三种 1 l r 求l-r区间内栈顶火车的权值和 2 l 删除l火车站的栈顶 若没有火车则不操作 3 l r x 在l-r区间内的每个火车站加入一个权值为x的火车 思路: 维护一颗主席树 维护 ...
分类:
其他好文 时间:
2018-09-19 21:49:12
阅读次数:
183
说在前面 这是一段递归代码, ,一开始 stack.pop() 已经被赋值到result 整型变量,所以 的返回值为1时,由于并没有再次给 result 重新赋值,所以 result 还是为2 回调函数 reverse(),当 stack 为空时,无返回值,执行回调函数下面的 sout(push) ...
分类:
其他好文 时间:
2018-09-19 21:48:22
阅读次数:
129
【题解】 我们可以发现每一对可以匹配的左右括号一定是一一对应的,那么我们用一个栈维护即可。如果当前是右括号,栈顶是左括号,那么一定有1的贡献,还要加上之前到达过top-1这个位置多少次,因为现在这一对括号可以和之前的那些组成更长的序列。 1 #include<cstdio> 2 #include<c ...
分类:
其他好文 时间:
2018-09-11 21:27:12
阅读次数:
148
这道题就是树上贪心就好了 从下往上搞 要是遇到没有被选过得点就把他的父亲标记就好了 然后就 $bfs$ 把节点都存到一个栈里面 然后弹出的肯定是最深的点 就慢慢往上搞就可以了 代码 啊这道题很神奇 有点类似倍增 因为所有的方案总是要求一个能够覆盖所有的区间并 所以必定有一个区间是经过原点的 所以就枚 ...
分类:
其他好文 时间:
2018-09-11 01:03:20
阅读次数:
181
一、垃圾收集的概念 在Java虚拟机运行时数据区中程序计数器、虚拟机栈和本地方法栈3个区域随线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作,每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的,因此这几个区域的内存分配和回收都具备确定性,因为方法结束或线程 ...
分类:
其他好文 时间:
2018-09-09 14:57:45
阅读次数:
184
一、 运行时数据区域 一、 运行时数据区域 1.1 程序计数器 记录正在执行的虚拟机字节码指令的地址(如果正在执行的是本地方法则为空)。 1.2 Java 虚拟机栈 每个 Java 方法在执行的同时会创建一个栈帧用于存储局部变量表、操作数栈、常量池引用等信息。从方法调用直至执行完成的过程,就对应着一 ...
分类:
编程语言 时间:
2018-09-09 11:54:58
阅读次数:
132