2023.12.23力扣每日一题——移除石子使总数最小

题目来源

力扣每日一题2023.12.23;题序:1962

我的题解

方法一 贪心思想+优先队列

首先很容易想到的就是使用贪心思想,也就是每次选择最大的石子堆进行移除。具体实现就是使用大根堆存储所有石子堆的大小,然后每次选择最大的石子堆进行移除。

时间复杂度:O(k×logn+n)。其中 n是数组 piles的长度。将数组变为优先队列消耗 O(n),k 次入队列和出队列的操作,每次消耗 O(log⁡n),总的时间复杂度是 O(k×log⁡n+n)。
空间复杂度:O(n)。优先队列所需的空间

public int minStoneSum(int[] piles, int k) {
   
        PriorityQueue<Integer> pq=new PriorityQueue<>((a,b)->b-a);
        int n=piles.length;
        for(int i=0;i<n;i++){
   
            pq.offer(piles[i]);
        }
        //选择石子堆进行移除
        while(!pq.isEmpty()&&k>0){
   
            int t=pq.poll();
            t=t-(int)Math.floor(t/2.0);
            if(t!=0)
                pq.offer(t);
            k--;
        }
        int res=0;
        while(!pq.isEmpty()){
   
            res+=pq.poll();
        }
        return res;
    }

有任何问题,欢迎评论区交流,欢迎评论区提供其它解题思路(代码),也可以点个赞支持一下作者哈😄~

相关推荐

  1. 2023.12.23每日——石子使总数

    2023-12-27 23:02:01       41 阅读
  2. LeetCode——1962. 石子使总数

    2023-12-27 23:02:01       40 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-27 23:02:01       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-27 23:02:01       20 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-27 23:02:01       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-27 23:02:01       20 阅读

热门阅读

  1. 3.pytorch cifar10

    2023-12-27 23:02:01       37 阅读
  2. DPDK系列之四十硬件加速和功能卸载

    2023-12-27 23:02:01       35 阅读
  3. 8个实用的Python内置函数

    2023-12-27 23:02:01       39 阅读
  4. 使用ubuntu问题

    2023-12-27 23:02:01       41 阅读
  5. Android保存WebView HTML源码

    2023-12-27 23:02:01       36 阅读
  6. HBase基础知识(六):HBase 对接 Hive

    2023-12-27 23:02:01       34 阅读
  7. pnpm包管理器

    2023-12-27 23:02:01       45 阅读
  8. git子模块使用关键命令

    2023-12-27 23:02:01       35 阅读
  9. uniapp实现瀑布流

    2023-12-27 23:02:01       32 阅读
  10. 【C++】多线程(四)

    2023-12-27 23:02:01       39 阅读
  11. 随笔笔记-2023

    2023-12-27 23:02:01       36 阅读
  12. 【ENGF0004】Mathematical Modelling and Analysis

    2023-12-27 23:02:01       30 阅读