首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
堆求专题
C++小顶堆求Topk
C++小顶堆求Topk 求数组中的Topk数字,比如【1、4、6、7、2、9、8、3、5、0】的Top4是【6、7、8、9】。 用小顶堆来实现, 首先用前4个元素新建一个大小为4的小顶堆,堆顶始终保存堆中的最小值。数组中的剩余数字是【2、9、8、3、5、0】然后逐个将剩余数字与堆顶比较,如果大于堆顶,则与堆顶交换,并向下调整堆。最后堆中保存的就是最大的4个数字。 代码如下,MinHeap.
阅读更多...
LeetCode:LCP 24. 数字游戏(对顶堆求中位数 Java)
目录 LCP 24. 数字游戏 题目描述: 实现代码与解析: 原理思路: LCP 24. 数字游戏 题目描述: 小扣在秋日市集入口处发现了一个数字游戏。主办方共有 N 个计数器,计数器编号为 0 ~ N-1。每个计数器上分别显示了一个数字,小扣按计数器编号升序将所显示的数字记于数组 nums。每个计数器上有两个按钮,分别可以实现将显示数字加一或减一。小扣每
阅读更多...
AtCoder Beginner Contest 127 F - Absolute Minima(对顶堆求动态中位数)
题目链接:F - Absolute Minima (atcoder.jp) 题目大意,给出操作次数Q,完成Q次操作。 共两种操作: 操作1:输入 1 a b ,将 f(x) 替换为 f(x) + | x - a | + b; 操作2:输入 2,找出最小的 x 使得 f(x) 的值最小; 我们可以发现 | x - a | 可以抽象成位置 x 与位置 a
阅读更多...