题目描述 合并k个已排序的链表并将其作为一个已排序的链表返回。分析并描述其复杂度。 Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. 思路:合并k路有序 ...
分类:
其他好文 时间:
2020-04-28 23:13:44
阅读次数:
64
Python实现堆 堆 堆是一种完全二叉树(当一个高度为 h 的完美二叉树减少到 h 1,并且最底层的槽被毫无间隙地从左到右填充,我们就叫它完全二叉树),有最大堆和最小堆两种 最大堆: 对于每个非叶子节点 V,V 的值都比它的两个孩子大,称为 最大堆特性(heap order property) 最 ...
分类:
编程语言 时间:
2020-04-27 15:06:28
阅读次数:
47
题目描述:传送门 题解思路: 此题目如果直接套用单源最短路径的模板并且不使用优化(即无最小堆或者优先队列帮助实现),并以邻接矩阵的方式储存点和边及权值,最多只能得到70分,测试点卡在MLE上。 在无优化的单源最短路径模板上,倘若使用前向星的方法来实现边和点的储存(只换了储存方式,其他的操作和思想没变 ...
分类:
其他好文 时间:
2020-04-26 19:05:09
阅读次数:
65
树的实际应用 堆排序 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序属于选择排序,其最好、最坏、平均时间复杂度均为 O(nlogn) ,他也是 不稳定排序 1. 堆介绍及最大最小堆 堆是具有以下性质的完全二叉树 每个结点的值都大于或等于其左右孩子结点的值,称为大项堆 每个结点的值都小于等于其 ...
分类:
编程语言 时间:
2020-04-24 20:06:27
阅读次数:
68
本质上是一种完全二叉树 分为两个类型: 1.最大堆: 所有父节点的值都大于左右孩子节点的值 2.最小堆:所有父节点的值都小于左右孩子节点的值 二叉堆根节点叫堆顶 1.二叉堆的自我调整 自我调整就是把不符合堆性质的完全二叉树调整成一个堆。 1.插入节点(最小堆举例) 插入时insert到最后一个节点 ...
分类:
其他好文 时间:
2020-04-24 18:44:14
阅读次数:
51
一:解题思路 方法一:每次添加一个数字,都使它成为一个递增有序的序列。时间复杂度分别为:addNum:O(n),findMedian:O(1) 方法二:采用一个最小堆和一个最大堆。时间复杂度分别为:addNum:O(log(n)),findMedian:O(1) 二:完整代码示例 (C++版和Jav ...
分类:
其他好文 时间:
2020-04-19 19:36:47
阅读次数:
67
先说结论: 栈大小:VS中默认1M,ubuntu中默认8M 堆大小:堆的话,理论上内存有多大,就可以建多大.但32位的程序在64位系统上运行的时候,一个进程的堆大小应该是不可以超过4G(虚拟地址空间大小为4G)的. 栈大小 linux下查看和修改: ulimit -a #显示当前用户的栈大小 uli ...
分类:
其他好文 时间:
2020-04-12 10:56:08
阅读次数:
100
堆(Heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵完全二叉树的数组对象。 两种类型的概念如下:大根堆(最大堆):每个结点的值都大于或等于左右孩子结点小根堆(最小堆):每个结点的值都小于或等于左右孩子结点 以大根堆为例子:【堆是无序的】 堆的三种操作:插入,删除,构建。 ...
分类:
编程语言 时间:
2020-04-09 19:06:52
阅读次数:
101
#include<algorithm> 常用方法有4个:make_heap、sort_heap、pop_heap、push_heap 这4个函数的参数都一样,返回值都为void。 first 首元素地址 last 尾元素地址 cmp 比较函数(决定大堆还是小堆) 1 template <class ...
分类:
其他好文 时间:
2020-04-07 18:47:28
阅读次数:
102
题目描述 :我们把只包含因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。 解法 1: 动态规划 因为丑数只包含质因数 2, 3, 5,所以对于下个丑数来说,一定是前面某个丑数乘 3、乘 4 或者乘 5 所得。 准备三个指针 ptr2、ptr3、ptr ...
分类:
编程语言 时间:
2020-04-06 23:49:21
阅读次数:
93