数据流的中位数 中位数是有序列表中间的数。如果列表长度是偶数,中位数则是中间两个数的平均值。 例如, [2,3,4] 的中位数是 3 [2,3] 的中位数是 (2 + 3) / 2 = 2.5 设计一个支持以下两种操作的数据结构: void addNum(int num) - 从数据流中添加一个整数 ...
分类:
其他好文 时间:
2019-01-01 17:26:34
阅读次数:
237
title: 求包含每个有序数组(共k个)至少一个元素的最小区间 toc: false date: 2018 09 22 21:03:22 categories: OJ tags: 归并 给定k个 有序 数组, 每个数组有个N个元素,找出一个最小的闭区间,使其包含每个数组中的至少一个元素。 关于最小 ...
分类:
编程语言 时间:
2018-12-26 20:03:38
阅读次数:
376
一、准备知识 1.堆 堆(英语:heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质: 堆中某个节点的值总是不大于或不小于其父节点的值; 堆总是一棵完全二叉树。 将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。常见的堆有二 ...
分类:
编程语言 时间:
2018-12-24 23:30:33
阅读次数:
248
二叉堆可以被看作是一个数组,也可以简单的看作是一个近似的完全二叉树,二叉堆有最大堆和最小堆,分别具有堆的性质:最大堆的某个结点的值最多与其父结点一样大,最小堆则是某个结点的值最多与其父结点一样小。所以最大堆中最大的结点永远是根结点,最小堆中最小的结点永远是根节点。 既然二叉堆是一种数据结构,就有其支 ...
分类:
其他好文 时间:
2018-12-22 17:28:49
阅读次数:
187
堆是一种类似二叉树的数据结构,分为最大堆和最小堆,最大堆得定义是当前节点必须大于左右子节点,堆中所有节点都要符合这个定义。最小堆反之。这一点不同于二叉树排序。假设有数组int a[10] = {90,45,21,43,22,77,13,89,56,84},根据最大堆来初始化数组 最大堆初始化代码思路 ...
分类:
编程语言 时间:
2018-12-11 18:15:18
阅读次数:
230
单源最短路径 给定一个图,和一个源顶点src,找到从src到其它所有所有顶点的最短路径,图中可能含有负权值的边。 Dijksra的算法是一个贪婪算法,时间复杂度是O(VLogV)(使用最小堆)。但是迪杰斯特拉算法在有负权值边的图中不适用,Bellman-Ford适合这样的图。在网络路由中,该算法会被 ...
分类:
编程语言 时间:
2018-12-09 21:29:09
阅读次数:
692
TopK问题是指从大量数据(源数据)中获取最大(或最小)的K个数据。 TopK问题是指从大量数据(源数据)中获取最大(或最小)的K个数据。 TopK问题是指从大量数据(源数据)中获取最大(或最小)的K个数据。 TopK问题是指从大量数据(源数据)中获取最大(或最小)的K个数据。 TopK问题是个很常 ...
分类:
编程语言 时间:
2018-12-01 18:44:57
阅读次数:
276
STL中的set和multiset基于红黑树实现,默认排序为从小到大。 定义三个multiset实例,进行测试: 输出结果: 可以为multiset指定排序方式,以此实现类似最大堆、最小堆的功能。 比如:当前排序方式为降序,那么greaterSet.begin()所指向的值就是最大值。 可以参考《剑 ...
分类:
编程语言 时间:
2018-11-30 20:19:46
阅读次数:
354
20172316 2018 2019 1《程序设计与数据结构》第九周学习总结 教材学习内容总结 第十五章 图 图: 堆是具有两个附加属性得的一棵二叉树: 它是一棵完全树; 对每一节点,它小(大)于或等于其左孩子和右孩子。 堆的分类 :按照堆中元素排列规律将堆分为两类: 最小堆(minheap),本章 ...
分类:
其他好文 时间:
2018-11-18 22:34:35
阅读次数:
215
20172307 2018 2019 1 《程序设计与数据结构》第9周学习总结 教材学习内容总结 + 堆是一棵完全二叉树,其中的每一结点都小于或等于它的两个孩子。 + 最小堆将其最小元素存储在该二叉树的根处,且其根的两个孩子同样也是最小堆。 + addElement方法将给定的Comparable元 ...
分类:
其他好文 时间:
2018-11-18 22:33:45
阅读次数:
201