学习,永无止境!|

韩熙隐ario

园龄:2年11个月粉丝:1关注:0

2025-01-15 23:57阅读: 11评论: 0推荐: 0

Java小根堆的使用

题目:超过阈值的最少操作数 II

思路

一眼想到用小根堆,学到了一些小根堆的相关的信息

收获

  • 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 中国大陆许可协议进行许可。

posted @   韩熙隐ario  阅读(11)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起