码迷,mamicode.com
首页 >  
搜索关键字:最小堆    ( 426个结果
264. 丑数 II
解法一:小根堆 要得到从小到大的第 \(n\) 个丑数,可以使用最小堆实现。 初始时堆为空。首先将最小的丑数 \(1\) 加入堆。 每次取出堆顶元素 \(x\),则 \(x\) 是堆中最小的丑数,由于 \(2x, 3x, 5x\) 也是丑数,因此将 \(2x, 3x, 5x\) 加入堆。 上述做法会 ...
分类:其他好文   时间:2021-06-16 18:15:45    阅读次数:0
295. Find Median from Data Stream
问题: 设计结构体,能够满足以下两个功能: 向结构体中插入数据 void addNum(int num) 去当前结构体中的中位数 double findMedian() 若共有奇数个数,取最中间的数 若共有偶数个数,取中间两个数之和/2 Example 1: Input ["MedianFinder ...
分类:其他好文   时间:2021-04-16 11:45:21    阅读次数:0
JZ33 丑数
丑数 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 方法1:最小堆,基于sort.IntSlice实现heap 方法2:动态规划 func nthUglyNumb ...
分类:其他好文   时间:2021-04-12 11:41:41    阅读次数:0
Python 用最小堆获取大量元素 topk 大个元素
import heapq class TopK: """ 获取大量元素 topk 大个元素,固定内存 思路: 1. 先让入元素前 k 个建立一个最小堆 2. 迭代剩余元素: 如果当前元素小于堆顶元素,跳过该元素 否则替换堆顶元素为当前元素,并重新调整堆 """ def __init__(self, ...
分类:编程语言   时间:2021-03-30 13:16:26    阅读次数:0
第K大的数
思路:维护一个K大小的最小堆,堆顶就是最小的元素,新元素都比堆顶小,当堆中元素个数小于K时,直接进入堆,当堆顶小于新元素时,弹出堆顶,新元素加入堆。 #include <iostream> #include <vector> #include <queue> using namespace std; ...
分类:其他好文   时间:2021-01-13 11:29:41    阅读次数:0
用Python实现最大堆
本文的内容是如何通过二叉树实现一个最大堆, 实现原理方面参考了这篇文章. 一. 堆的数据结构 1. 数据结构分析 堆的本质就是一颗二叉树, 这颗二叉树必须具备以下两个性质: 1). 对于最大堆来说, 二叉树根节点的值不小于任何子节点, 其所有子树也符合这一特征, 最小堆则相反; 2). 堆是一颗完全 ...
分类:编程语言   时间:2021-01-06 11:45:46    阅读次数:0
【算法与数据结构】二叉堆是什么鬼?
二叉堆是一种应用很广的数据结构,今天,我们就来简单讲讲二叉堆。什么是二叉堆?二叉堆是一种特殊的堆。具有如下的特性:具有完全二叉树的特性。堆中的任何一个父节点的值都大于等于它左右孩子节点的值,或者都小于等于它左右孩子节点的值。根据第二条特性,我们又可以把二叉堆分成两类:1、最大堆:父节点的值大于等于左右孩子节点的值。2、最小堆:父节点的值小于等于左右孩子节点的值。我们把二叉堆的根节点称之为堆顶。根据
分类:编程语言   时间:2020-12-02 12:34:24    阅读次数:6
Java实现的二叉堆以及堆排序详解
一、前言 二叉堆是一个特殊的堆,其本质是一棵完全二叉树,可用数组来存储数据,如果根节点在数组的下标位置为1,那么当前节点n的左子节点为2n,有子节点在数组中的下标位置为2n+1。二叉堆类型分为最大堆(大顶堆)和最小堆(小顶堆),其分类是根据父节点和子节点的大小来决定的,在二叉堆中父节点总是大于或等于 ...
分类:编程语言   时间:2020-09-16 12:12:33    阅读次数:31
寒武纪二面:
2020.08.05 1、多线程 2、IPC、共享内存 3、bind 4、合并n个有序链表 (力扣原题 使用最小堆会快一些) #include <queue> using namespace std; struct ListNode { int val; ListNode* next; ListNo ...
分类:其他好文   时间:2020-08-20 18:20:10    阅读次数:118
二叉堆
1.什么是二叉堆? 二叉堆本质上是一种完全二叉树,它分为两个类型。 最大堆—最大堆的任何一个父节点的值,都大于或等于它左、右孩子节点的值。 最小堆—最小堆的任何一个父节点的值,都小于或等于它左、右孩子节点的值。 二叉堆的根节点叫做堆顶。 最大堆和最小堆的特点决定了:最大堆堆顶是整个堆中的最大元素;最 ...
分类:其他好文   时间:2020-07-30 14:04:44    阅读次数:66
426条   1 2 3 4 ... 43 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!