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

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;}

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/577261.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何使用 YOLOv8 做对象检测

介绍 对象检测是一项计算机视觉任务&#xff0c;涉及识别和定位图像或视频中的对象。它是许多应用的重要组成部分&#xff0c;例如自动驾驶汽车、机器人和视频监控。 多年来&#xff0c;已经开发了许多方法和算法来查找图像中的对象及其位置。卷积神经网络对于此类任务有着非…

uni-app 工程目录结构介绍

锋哥原创的uni-app视频教程&#xff1a; 2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中..._哔哩哔哩_bilibili2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中...共计23条视频&#xff0c;包括&#xff1a;第1讲 uni…

[kubernetes]控制平面ETCD

什么是ETCD CoreOS基于Raft开发的分布式key-value存储&#xff0c;可用于服务发现、共享配置以及一致性保障&#xff08;如数据库选主、分布式锁等&#xff09;etcd像是专门为集群环境的服务发现和注册而设计&#xff0c;它提供了数据TTL失效、数据改变监视、多值、目录监听、…

MyBatis:Generator

MyBatis Generator附批量操作分页查询存储过程 Generator 介绍网址&#xff1a;Introduction to MyBatis Generator Generator &#xff0c;一个用于 MyBatis 的代码生成工具&#xff0c;可以根据数据库表结构自动生成对应的实体类、DAO 接口和 SQL 映射文件&#xff0c;提高…

申报个税汇缴,计税方式怎么选?

申报个税汇缴&#xff0c;计税方式怎么选&#xff1f; 到底是选择全部并入综合所得计税还是单独计税呢&#xff1f;哪个更划算呢&#xff1f; 举个例子全方位解析 纳税人获得全年一次性奖金后&#xff0c;到底选择哪种计税方法更划算呢&#xff1f;芜湖税务局相关人员举例称…

智能优化算法应用:基于协作搜索算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于协作搜索算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于协作搜索算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.协作搜索算法4.实验参数设定5.算法结果6.…

自媒体实战篇:剪辑软件应用与实操

剪辑软件应用与实操 剪映基础界面认识 素材面板 导入本地素材,剪映自带素材库,音频,文本等素材合集面板播放预览 预览本地素材,,剪映自带素材库以及时间线面板中的素材的实时效果时间线面板 对素材进行基础的编辑操作,调整素材轨道等素材功能面板 可对素材或者文本等精细…

智能优化算法应用:基于人工蜂鸟算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于人工蜂鸟算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于人工蜂鸟算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.人工蜂鸟算法4.实验参数设定5.算法结果6.…

linux信号量封装

项目描述 该项目用来封装linux信号量的操作&#xff0c;方便我们操作信号量。 项目架构 该项目最终生成动态库libsem_common.so 使用说明&#xff1a; 包含头文件sem_common.h 编译动态库libsem_common.so 项目截图 main.cpp: #include "../../sem_common/sem_com…

VMvare虚拟机之文件夹共享防火墙设置

目录 一.jdk的配置&TomCat的配置 1.1 jdk配置 1.2 tomcat配置 二.文件夹共享功能 2.1 作用 2.2.高级共享和普通共享 三.防火墙设置 3.1 入站规则和出站规则 四.附图-思维导图 一.jdk的配置&TomCat的配置 建立一个共享文件夹&#xff0c;将jdk文件和tomcat文…

Java中的内部类、枚举

内部类、枚举 内部类成员内部类静态内部类局部内部类&#xff08;不重要&#xff09;匿名内部类&#xff08;重要&#xff09;什么是匿名内部类使用场景 枚举类什么是枚举类枚举类的特点枚举类提供的一些额外API拓展&#xff1a;抽象枚举使用枚举类实现单例设计模式 常见应用场…

thinkphp6.0的workerman在PHP8.0下报错

一、我先升级了thinkphp6.0到最新版本&#xff1a; composer update topthink/framework二、结果提示我composer版本过低&#xff0c;需要升级到2&#xff0c;于是我又升级了composer composer self-update 三、我又升级了workerman: composer require topthink/think-work…

Unity 获取当前日期的短时间和处于早中午晚哪个时间段

在我们手机中我们总会看到下图所示的时间&#xff0c;时间段当前时间&#xff0c;假如我们要实现这个效果应该怎么做呢。 首先是使用DateTime.Now获取当前时间&#xff1a; // 获取当前时间DateTime currentTime DateTime.Now; 其次由当前时间获取短时间&#xff0c;可以使用…

Intel FPGA 技术开放日

概要 时间&#xff1a;2023.11.14 全天 &#xff08; 9:00 - 16: 20&#xff09; 地点&#xff1a;北京望京. 凯悦酒店 主题内容&#xff1a;分享交流了Intel FPGA 产品技术优势和落地实践方案。 会议的议程 开场致词&#xff1a; FPGA业务&#xff0c;是几年前intel收购而…

虚拟机安装centos7系统步骤

1、下载系统镜像文件 下载地址&#xff1a;https://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-DVD-2207-02.iso 2、鼠标右键点击虚拟机-->设置-->CD/DVDD-->使用ISO映像文件-->点击浏览&#xff0c;选择文件&#xff0c;而后保存设置 3、点…

如何使用Docker将.Net6项目部署到Linux服务器(二)

目录 二 安装Redis 2.1 基本安装 2.1.1 下载Redis 2.1.2 解压并安装Redis 2.1.3 编译Redis 2.1.3 配置config文件 2.1.4 配置redis服务 2.1.5 关闭redis服务 2.2 Docker安装 2.2.1 拉取镜像 2.2.2 查看镜像 2.2.2 创建挂载目录 2.2.3 创建配置文件 2.2.4 创建容器…

算法笔记—二叉树遍历

二叉树 1. 递归遍历1. 先序遍历2. 中序遍历3. 后序遍历 2. 非递归遍历2.1 先序遍历2.2 中序遍历2.3 后序遍历2.3.1 两栈实现2.3.2 一栈实现 1. 递归遍历 二叉树的结构定位为&#xff1a; public static class TreeNode {public int val;public TreeNode left;public TreeNode …

CountDownLatch详解以及用法示例

一、什么是CountDownLatch CountDownLatch中count down是倒数的意思&#xff0c;latch则是门闩的含义。整体含义可以理解为倒数的门栓。 CountDownLatch的作用也是如此&#xff0c;在构造CountDownLatch(int count)&#xff1a;的时候需要传入一个整数count&#xff0c;在这个…

PortSwigger Access Control

lab1: Unprotected admin functionality 访问robots.txt 进了删除即可 lab2: Unprotected admin functionality with unpredictable URL 访问admin-d0qwj5 lab3: User role controlled by request parameter 发现Cookie中存在判断是否为admin lab4: User role can be modifie…

gitattributes配置文件的作用

0 Preface/Foreword 0.1 基本概念 Git版本管控工具功能强大&#xff0c;在使用过程中&#xff0c;在多人合作的项目开发过程中&#xff0c;经常会遇到提交代码时出现的warning提醒&#xff0c;尤其是换行符。 Linux/Unix/Mac OS操作系统的换行符使用LF符号&#xff08;\n&am…