点分治,用一个mn[v]数组记录当前root下长为v的链的最小深度,每次新加一个儿子的时候都在原来儿子更新过的mn数组里更新ans(也就是查一下mn[m dis[p]]+de[p]) 这里注意更新和初始化的时候不能对整个mn操作,这样时间复杂度是错的,要开一个栈存一下更新了哪些点,只初始化这些点即可 ...
分类:
其他好文 时间:
2018-12-11 19:54:07
阅读次数:
159
开始学Java的时候,听到好多都说Java编程不用考虑内存管理,比C方便多了。但是后来看一些基础知识,发现不了解Java各个部分内存分布,有些概念很难理解。 JVM内存分为5个部分:方法区,JVM堆,JVM栈,本地方法栈,程序计数器。 程序计数器:线程私有,用于记录当前线程执行的位置。用于切换回来之 ...
分类:
其他好文 时间:
2018-12-09 16:30:37
阅读次数:
138
Java虚拟机运行时数据区在JDK1.8之前,JVM运行时数据区分为堆、虚拟机栈、本地方法栈、方法区、程序计数器。如下图所示:虚拟机栈:线程私有,随线程创建而创建。栈里面是一个一个“栈帧”,每个栈帧对应一次方法调用。栈帧中存放了局部变量表(基本数据类型变量和对象引用)、操作数栈、方法出口等信息。当栈调用深度大于JVM所允许的范围,会抛出StackOverflowError的错误。本地方法栈:线程私
分类:
编程语言 时间:
2018-12-06 20:52:34
阅读次数:
207
题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。 利用两个栈,一个栈来正常保存所有元素,另一个栈作为辅助。仅在以下情况使用: push: 当辅助栈为空,或者辅助栈顶元素大于入栈元素时,辅助栈也push(value) pop: 当辅助栈顶 ...
分类:
其他好文 时间:
2018-12-02 22:37:45
阅读次数:
257
数组和链表内存上的区别 两个栈实现一个队列 两个队列实现一个栈 二叉树的四种遍历 森林的遍历 ...
分类:
编程语言 时间:
2018-12-01 17:07:19
阅读次数:
530
//20181129 ·Java虚拟机的内存分为三个部分:栈stack、堆heap、方法区method area 包含在“堆”里面,因为作用特殊所以单独列出来 ·栈的特点: 栈描述的是方法执行的内存模型。每个方法被调用都会创建一个栈帧(存储局部变量、操作数、方法出口等) JVM为每个线程创建一个栈, ...
分类:
编程语言 时间:
2018-11-29 11:17:36
阅读次数:
117
头文件: 建立一个栈 //例如 加入一个新的元素 询问栈顶元素 弹出栈顶元素 栈里面有多少个元素`s.size()` ...
分类:
其他好文 时间:
2018-11-28 11:58:25
阅读次数:
184
java分布式 Java高并发 Java高可用 Java高扩展 高并发架构
NIO通讯
分类:
编程语言 时间:
2018-11-26 16:15:04
阅读次数:
196
0.LR分析 用一个栈来保存文法符号和状态的信息,一个字符串保存输入信息。 使用栈顶的状态符号和当前的输入符号来检索分析表,来决定移进 归约分析的动作。 1.样例文法 2.分析表(未全部列出) 3.code c++ //LR分析 demo2 include include include inclu ...
分类:
其他好文 时间:
2018-11-24 19:48:58
阅读次数:
226