题目: 合并k个有序链表,并将结果用一个有序链表输出 思路: 假设k个链表的总元素数目为n。首先想到两两合并列表,在序列1和2合并,3和4合并,依次类推。直到合并的只剩一个链表。这种操作的时间复杂度为O(nlog(k)),空间复杂度为O(1)。python代码如下: 注意到在mergeTwoList ...
分类:
其他好文 时间:
2018-06-06 15:36:42
阅读次数:
164
1.堆大小设置 JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。典型设置: java -Xmx3550m -Xms3550m -Xmn2g ...
分类:
其他好文 时间:
2018-05-11 23:51:27
阅读次数:
183
参考:https://blog.csdn.net/guoweimelon/article/details/50904346 一、堆树的定义 堆树的定义如下: (1)堆树是一颗完全二叉树; (2)堆树中某个节点的值总是不大于或不小于其孩子节点的值; (3)堆树中每个节点的子树都是堆树。 当父节点的键值 ...
分类:
其他好文 时间:
2018-05-08 22:13:28
阅读次数:
161
`Python` 二叉堆(binary heap) 二叉堆是一种特殊的堆,二叉堆是完全二叉树或者是近似完全二叉树。二叉堆满足堆特性:父节点的键值总是保持固定的序关系于任何一个子节点的键值,且每个节点的左子树和右子树都是一个二叉堆。 当父节点的键值总是大于或等于任何一个子节点的键值时为最大堆。 当父节 ...
分类:
编程语言 时间:
2018-05-06 10:40:22
阅读次数:
738
import time,randomdef sift_down(arr, node, end): root = node #print(root,2*root+1,end) while True: # 从root开始对最大堆调整 child = 2 * root +1 #left child if ...
分类:
编程语言 时间:
2018-04-25 10:20:33
阅读次数:
227
一、题解方法 建立一个最小堆和一个最大堆,不断更新当前中位数,建立一个数组存入读入奇数个数时的中位数。 用stl中的优先队列存放最大堆、最小堆。 二、题解代码 ...
分类:
其他好文 时间:
2018-04-11 21:45:53
阅读次数:
146
这是慕课上堆这一节的输出,为了加深堆的印象 代码 c++ struct MaxHeap{ vector Elements; int size; int cap; MaxHeap(int MaxSize):size(0),cap(MaxSize){ Elements.resize(MaxSize); ...
分类:
其他好文 时间:
2018-04-11 21:38:47
阅读次数:
146
题目描述 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。 解题思路 可以用一个最大堆实现中位数左边的数据容器,最小堆实现右边的数据容器。为了保证数据平均分配到两 ...
分类:
其他好文 时间:
2018-04-06 18:41:21
阅读次数:
147
1.最小堆、最大堆 priority_queue<int,vector<int>,greater<int> > f; //最小堆(后面的数逐渐greater) priority_queue<int,vector<int>,less<int> > f;//最大堆(后面的数逐渐less) (1).合并果 ...
分类:
编程语言 时间:
2018-04-06 10:57:23
阅读次数:
190
某天女朋友抛出了下面一段以下类似代码的字符串问我其中的Xmx、Xms...等等等是什么意思,干嘛用的?我先是一惊,随后淡定,因为刚好这几个参数我还认识(没吃过猪肉,也见过猪跑啊)然后说这是配置jvm最大堆内存和最小堆内存的。然后她又问什么是jvm?这就尴尬了,这就聊不下去了,于是有了这篇随笔。 一、 ...
分类:
其他好文 时间:
2018-04-06 10:52:34
阅读次数:
188