已解决
2023-10-28 LeetCode每日一题(从数量最多的堆取走礼物)
来自网友在路上 184884提问 提问时间:2023-10-28 14:54:46阅读次数: 84
最佳答案 问答题库848位专家为你答疑解惑
2023-10-28每日一题
一、题目编号
2558. 从数量最多的堆取走礼物
二、题目链接
点击跳转到题目位置
三、题目描述
给你一个整数数组 gifts ,表示各堆礼物的数量。每一秒,你需要执行以下操作:
- 选择礼物数量最多的那一堆。
- 如果不止一堆都符合礼物数量最多,从中选择任一堆即可。
- 选中的那一堆留下平方根数量的礼物(向下取整),取走其他的礼物。
返回在 k 秒后剩下的礼物数量。
示例1:
示例2:
提示:
- 1 <= gifts.length <= 103
- 1 <= gifts[i] <= 109
- 1 <= k <= 103
四、解题代码
class Solution {priority_queue<int> q;
public:long long pickGifts(vector<int>& gifts, int k) {for(int i = 0; i < gifts.size(); ++i){q.push(gifts[i]);}while(k != 0){k--;int num = q.top();q.pop();num = sqrt(num);q.push(num);}long long sum = 0;while(!q.empty()){sum += q.top();q.pop();}return sum;}
};
五、解题思路
(1) 队列
查看全文
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"2023-10-28 LeetCode每日一题(从数量最多的堆取走礼物)":http://eshow365.cn/6-26875-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: HTTP 响应状态码介绍
- 下一篇: 几个常用的nosql数据库的操作方式