【每日一题Day361】LC2558从数量最多的堆取走礼物 | 大顶堆
从数量最多的堆取走礼物【LC2558】
给你一个整数数组
gifts,表示各堆礼物的数量。每一秒,你需要执行以下操作:
- 选择礼物数量最多的那一堆。
- 如果不止一堆都符合礼物数量最多,从中选择任一堆即可。
- 选中的那一堆留下平方根数量的礼物(向下取整),取走其他的礼物。
返回在
k秒后剩下的礼物数量*。*
-
思路
使用大顶堆存放所有礼物,每次将堆顶元素移出,并将其平方根放入堆中,最后求出堆中剩余礼物数目
-
实现
class Solution {public long pickGifts(int[] gifts, int k) {long res = 0L;PriorityQueue<Integer> pq = new PriorityQueue<>((o1, o2) -> o2 - o1);for (int gift :gifts){pq.add(gift);res += gift;}while(k-- > 0){int poll = pq.poll(), left = (int)Math.sqrt(poll);res -= poll - left;pq.add(left);}return res;} }- 复杂度
- 时间复杂度: O ( n + k l o g n ) O(n+klogn) O(n+klogn)
- 空间复杂度: O ( n ) O(n) O(n)
- 复杂度
相关文章:
【每日一题Day361】LC2558从数量最多的堆取走礼物 | 大顶堆
从数量最多的堆取走礼物【LC2558】 给你一个整数数组 gifts ,表示各堆礼物的数量。每一秒,你需要执行以下操作: 选择礼物数量最多的那一堆。如果不止一堆都符合礼物数量最多,从中选择任一堆即可。选中的那一堆留下平方根数量的礼物…...
【psychopy】【脑与认知科学】认知过程中的面孔识别加工
目录 实验描述 实验思路 python实现 实验描述 现有的文献认为,人们对倒置的面孔、模糊的面孔等可能会出现加工时长增加、准确率下降的问题,现请你设计一个相关实验,判断不同的面孔是否会出现上述现象。请按照认知科学要求,画…...
File类的常用API
判断文件类型 public boolean isDirectory() public boolean isFile() 获取文件信息 public boolean exists() public String getAbsolutePath() public String getPath() 返回创建文件对象时传入的抽象路径的字符串形式 public String getName() public long lastModi…...
02【Git分支的使用、Git回退、还原】
上一篇:01【Git的基本命令、底层命令、命令原理】 下一篇:03【Git的协同开发、TortoiseGit、IDEA的操作Git】 文章目录 02【Git分支的使用、Git回退、还原】一、分支1.1 分支概述1.1.1 Git分支简介1.1.2 Git分支原理 1.2 创建分支1.2.1 创建普通分支1.…...
Qt文件 I/O 操作
一.QFile 文件读取 QIODevice::ReadOnly QString filePath"/home/chenlang/RepUtils/1.txt"; QFile file(filePath); 1.逐行读取 if (file.open(QIODevice::ReadOnly | QIODevice::Text)) {QTextStream in(&file);while (!in.atEnd()) {QString line i…...
Springboot 使用JavaMailSender发送邮件 + Excel附件
目录 1.生成Excel表格 1.依赖设置 2.代码: 2.邮件发送 1.邮件发送功能实现-带附件 2.踩过的坑 1.附件名中文乱码问题 3.参考文章: 需求描述:项目审批完毕后,需要发送邮件通知相关人员,并且要附带数据库表生成的…...
软件工程——期末复习知识点汇总
本帖的资料来源于某国内顶流高校的期末考试资料,仅包含核心的简答题,大家结合个人情况,按需复习~ 总的来说,大层面重点包括如下几个方面: 软件过程需求工程 设计工程软件测试软件项目管理软件过程管理 1.掌握软件生命…...
postgresSQL 数据库本地创建表空间读取本地备份tar文件与SQL文件
使用pgAdmin4,你安装PG得文件夹****/16/paAdmin 4 /runtime/pgAdmin4.exe 第一步:找到Tablespaces 第二步:创建表空间名称 第三步:指向数据文件 第四步:找到Databases,创建表空间 第五步:输入数…...
Elasticsearch跨集群检索配置
跨集群检索字面意思,同一个检索语句,可以检索到多个ES集群中的数据,ES集群默认是支持跨集群检索的,只需要动态的增加入节点即可,下面跟我一起来体验下ES的跨集群检索的魅力。 Elasticsearch 跨集群检索推荐的是不同集群…...
第九章 软件BUG和管理
一、学习目的与要求 软件测试的目的就是为了发现软件BUG。通过本章的学习,应了解软件BUG的产生和影响,掌握软件开发过程中产生的BUG种类,掌握使BUG重现的技术,了解软件BUG报告单应该包括的主要内容及软件BUG的管理流程。 二、考核…...
大厂面试题-Java并发编程基础篇(二)
目录 一、wait和notify这个为什么要在synchronized代码块中? 二、ThreadLocal是什么?它的实现原理呢? 三、基于数组的阻塞队列ArrayBlockingQueue原理 四、怎么理解线程安全? 五、请简述一下伪共享的概念以及如何避免 六、什…...
测绘屠夫报表系统V1.0.0-beta
1. 简介 测绘屠夫报表系统,能够根据变形监测数据:水准、平面、轴力、倾斜等数据,生成对应的报表,生成报表如下图。如需进一步了解,可以加QQ:3339745885。视频教程可以在bilibili观看。 2. 软件主界面 3. …...
『力扣刷题本』:移除链表元素
一、题目 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 示例 1: 输入:head [1,2,6,3,4,5,6], val 6 输出:[1,2,3,4,5]示例 2: 输入&a…...
图像特征Vol.1:计算机视觉特征度量|第一弹:【纹理区域特征】
目录 一、前言二、纹理区域度量2.1:边缘特征度量2.2:互相关和自相关特征2.3:频谱方法—傅里叶谱2.4:灰度共生矩阵(GLCM)2.5:Laws纹理特征2.6:局部二值模式(LBP) 一、前言 …...
day01:数据库DDL
一:基础概念 数据库:存储数据的仓库,数据是有组织的进行存储 数据库管理系统:操纵和管理数据库的大型软件 SQL:操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准 关系图 二:数据模型 关系型数据库:建…...
9、定义错误页
在layouts目录下新建error.vue,可以通过layout函数使用布局文件,通过props: [“error”]能拿到错误信息对象。 <template><div>{{ error.statusCode }}: {{ error.message }}</div> </template><script> export default {…...
有关多线程环境下的Volatile、lock、Interlocked和Synchronized们
📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创📢作者格言:新的征程,我们面对的不仅…...
spring boot利用redis作为缓存
一、缓存介绍 在 Spring Boot 中,可以使用 Spring Cache abstraction 来实现缓存功能。Spring Cache abstraction 是 Spring 框架提供的一个抽象层,它对底层缓存实现(如 Redis、Ehcache、Caffeine 等)进行了封装,使得在…...
Android Studio 查看Framework源码
1、背景 安卓系统源码量很庞大,选择好的开发工具和方式去开发可以提升开发效率,常用的开发工具有Source Insight 、Visual Studio Code、Android Studio,vscode适合C和C代码开发,java层代码无法跳转和提示,因此&#…...
FileInputStream文件字节输入流
一.概念 以内存为基准,把磁盘文件中的数据以字节形式读入内存中 二.构造器 public FileInputStream(File file) public FileInputStream(String pathname) 这两个都是创建字节输入流管道与源文件接通 三.方法 public int read() :每次读取一个字节返回,如…...
Transformer模型推理性能实测:PyTorch+A10 GPU与MLX+Apple Silicon对比
1. 项目概述与背景最近在部署几个基于Transformer的NLP服务时,遇到了一个经典的选择题:是继续沿用我们团队熟悉的PyTorch NVIDIA GPU方案,还是尝试拥抱苹果生态,用MLX框架在Mac上跑推理?这个问题在团队内部引发了不小…...
告别卡顿!用IL2CPP优化你的Unity游戏:性能提升与包体瘦身实测
告别卡顿!用IL2CPP优化你的Unity游戏:性能提升与包体瘦身实测最近在优化一款Unity游戏时,我发现了一个令人头疼的问题:游戏在低端设备上频繁卡顿,包体大小也超出了预期。经过一番探索,我决定尝试将脚本后端…...
Godot 4.2 2D游戏开发:用TileMap图层一键搞定游戏地图的可行走区域
Godot 4.2 2D游戏开发:用TileMap图层一键搞定游戏地图的可行走区域在2D游戏开发中,地图设计往往是最耗时的环节之一。传统方法需要开发者手动绘制碰撞体或编写复杂的导航逻辑,而Godot 4.2的TileMap导航层功能彻底改变了这一局面。想象一下&am…...
UE材质进阶:拆解WAT世界对齐纹理原理,从‘井盖积雪’到‘墙体苔藓’的通用实现思路
UE材质进阶:WAT世界对齐纹理原理与多场景实战指南想象一下这样的场景:你的开放世界游戏中,一辆越野车驶过泥泞道路,轮胎上的泥渍会随着行驶距离逐渐积累,但无论车辆如何移动旋转,泥渍纹理始终与地面环境保持…...
从‘兔子’到‘钢板’:手把手教你用Open3D和Python为工业零件做‘表面体检’(附完整数据集)
从‘兔子’到‘钢板’:工业级点云缺陷检测实战指南当斯坦福大学的兔子点云模型在学术论文中反复出现时,许多工程师会产生一种错觉——似乎所有三维扫描数据都该如此干净规整。直到第一次拿到车间里沾满油污的金属件扫描结果,那些噪点、缺失和…...
QuickLyric终极指南:如何在Android上免费获取自动同步歌词
QuickLyric终极指南:如何在Android上免费获取自动同步歌词 【免费下载链接】QuickLyric Android app that instantly fetches your lyrics for you. 项目地址: https://gitcode.com/gh_mirrors/qu/QuickLyric 你是否厌倦了手动搜索歌词的繁琐?Qui…...
Hindsight与金融AI集成:交易决策记忆和分析的终极指南
Hindsight与金融AI集成:交易决策记忆和分析的终极指南 【免费下载链接】hindsight Hindsight: Agent Memory That Learns 项目地址: https://gitcode.com/GitHub_Trending/hindsight2/hindsight Hindsight是一个革命性的智能体记忆系统,专门设计用…...
避坑指南:在openEuler 22.03上配置vsftpd虚拟用户,解决gdbmtool替代db_load的认证问题
深度解析:在openEuler 22.03上配置vsftpd虚拟用户的最佳实践 最近在openEuler 22.03上配置vsftpd虚拟用户时,我发现了一个让不少从CentOS/RHEL迁移过来的管理员头疼的问题:传统的 db_load 方法在这里行不通了。经过一番探索和踩坑ÿ…...
AArch64缓存架构解析与性能优化实践
1. AArch64缓存架构基础解析AArch64架构作为ARMv8指令集的64位执行状态,其缓存系统设计体现了现代处理器架构的典型特征。缓存作为CPU与主存之间的高速缓冲存储器,通过存储频繁访问的数据和指令来减少内存访问延迟。在AArch64中,缓存被组织为…...
差分隐私生成模型实战:从理论保障到隐私攻击与审计评估
1. 项目概述与核心挑战在医疗健康、社会科学研究以及政府统计等领域,处理包含个人敏感信息的表格数据是一项常态。这些数据是宝贵的研究资源,但其使用受到严格的隐私法规(如GDPR、HIPAA等)的约束。传统的数据脱敏或匿名化方法&…...
