Java小根堆的使用
思路
一眼想到用小根堆,学到了一些小根堆的相关的信息
收获
- heap.add(),添加元素
- heap.poll(),获取堆顶元素,并移除
- heap.peek(),获取堆顶元素
- heap.size(),获取堆的元素数量
代码
class Solution {
public int minOperations(int[] nums, int k) {
int res = 0;
PriorityQueue<Integer> heap = new PriorityQueue<>();
for (int num : nums) {
if (num < k) heap.add(num);
}
while (heap.size() > 0) {
res++;
System.out.println(heap.size());
if (heap.size() == 1) break;
int m1 = heap.poll();
int m2 = heap.poll();
long t = (long)m1 * 2 + m2;
if (t < k) {
int s = (int) t;
System.out.println(s);
heap.add(s);
}
}
return res;
}
}
本文作者:ario
本文链接:https://www.cnblogs.com/arioya/p/18673934
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步