当前位置: 首页 > news >正文

leetcode_2558 从数量最多的堆取走礼物

1. 题意

给定一个数组,每次从中取走最大的数,返回开根号向下取整送入堆中,最后计算总和。

从数量最多的堆取走礼物

2. 题解

直接用堆模拟即可

2.1 我的代码

用了额外的空间O( n )
priority_queue会自动调用make_heap()pop_heap()

class Solution {
public:long long pickGifts(vector<int>& gifts, int k) {priority_queue<int, vector<int>, less<> > maxHeap(gifts.begin(), gifts.end());long long ans = 0;for ( int i = 0; i < k; ++i) {int p = maxHeap.top();if (p == 1) break;maxHeap.pop();maxHeap.push( (int) sqrt(p));}while (!maxHeap.empty()) {ans += maxHeap.top();maxHeap.pop();}return ans;}
};
2.2 更简的代码

直接在原数组上建堆就可以了

class Solution {
public:long long pickGifts(vector<int>& gifts, int k) {make_heap(gifts.begin(), gifts.end(), less<int>());for ( int i = 0; i < k; ++i) {pop_heap(gifts.begin(), gifts.end() );gifts.back() = sqrt(gifts.back());push_heap(gifts.begin(), gifts.end());}return accumulate(gifts.begin(), gifts.end(), 0ll );}
};

相关文章:

  • 进制转换10进制转二进制,n进制转16进制
  • 一个简单的注册的页面,如有错误请指正;(3.JavaScript)
  • 记一次fineBI的增量删除更新BUG
  • Ansible上通过roles简化playbook演示介绍
  • 2023年【河北省安全员B证】新版试题及河北省安全员B证试题及解析
  • Vue中this指向问题
  • mongodb数据迁移的方法
  • CTF-Web(2)SQL注入
  • 【java学习—九】内部类(7)
  • 线程池的理解
  • 软考-网络安全审计技术原理与应用
  • LeetCode|股票问题|714. 买卖股票的最佳时机含手续费、309. 买卖股票的最佳时机含冷冻期
  • flutter升级+生成drift文件
  • python:使用Scikit-image对遥感影像进行傅里叶变换特征提取(fourier)
  • 安防监控项目---boa服务器的移植
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • Less 日常用法
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • Python爬虫--- 1.3 BS4库的解析器
  • Rancher如何对接Ceph-RBD块存储
  • React+TypeScript入门
  • V4L2视频输入框架概述
  • webpack+react项目初体验——记录我的webpack环境配置
  • 从0到1:PostCSS 插件开发最佳实践
  • 面试遇到的一些题
  • 七牛云假注销小指南
  • MPAndroidChart 教程:Y轴 YAxis
  • Python 之网络式编程
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • #if #elif #endif
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • %3cscript放入php,跟bWAPP学WEB安全(PHP代码)--XSS跨站脚本攻击
  • (done) 两个矩阵 “相似” 是什么意思?
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (windows2012共享文件夹和防火墙设置
  • (安卓)跳转应用市场APP详情页的方式
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (算法)求1到1亿间的质数或素数
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (一)Mocha源码阅读: 项目结构及命令行启动
  • (原創) X61用戶,小心你的上蓋!! (NB) (ThinkPad) (X61)
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • *p++,*(p++),*++p,(*p)++区别?
  • .net MVC中使用angularJs刷新页面数据列表
  • .NET 简介:跨平台、开源、高性能的开发平台
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • .NET大文件上传知识整理
  • .sh
  • @html.ActionLink的几种参数格式
  • @kafkalistener消费不到消息_消息队列对战之RabbitMq 大战 kafka