1705. 吃苹果的最大数目
链接:1705. 吃苹果的最大数目
题解:
class Solution {
public:typedef std::pair<int, int> pii;int eatenApples(vector<int>& apples, vector<int>& days) {std::priority_queue<pii, std::vector<pii>, std::greater<pii>> que;int result = 0;int i = 0;while (i < apples.size()) {while (!que.empty() && que.top().first <= i) {que.pop();}// 截止时间,这个时间不能使用,假设1int end_time = i + days[i];// 苹果个数int apple_cnt = apples[i];if (apple_cnt > 0) {que.push(pii(end_time, apple_cnt));}if (!que.empty()) {// 第i天吃一个苹果auto f = que.top();que.pop();++result;--f.second;if (f.second > 0) {que.push(pii(f.first, f.second));}}++i;}while (!que.empty()) {while (!que.empty() && que.top().first <= i) {que.pop();}if (que.empty()) {break;}auto f = que.top();que.pop();// f.first是腐烂的日志-上次的起始日志int time_interval = f.first - i;// 苹果个数int apple_cnt = f.second;// 使用这个苹果可以吃几天int days = min(time_interval, apple_cnt);// 计算后面苹果的天数result += days;i += days;}return result;}
};
1705. 吃苹果的最大数目相关推荐
- 1705. 吃苹果的最大数目(贪心、优先队列(堆)、哈希表),总之先吃快烂的苹果
1705. 吃苹果的最大数目 题干 有一棵特殊的苹果树,一连 n 天,每天都可以长出若干个苹果.在第 i 天,树上会长出 apples[i] 个苹果,这些苹果将会在 days[i] 天后(也就是说,第 ...
- LeetCode - 1705 吃苹果的最大数目
目录 题目来源 题目描述 示例 提示 题目解析 算法源码 题目来源 1705. 吃苹果的最大数目 - 力扣(LeetCode) 题目描述 有一棵特殊的苹果树,一连 n 天,每天都可以长出若干个苹果.在 ...
- 【每日一题】 1705. 吃苹果的最大数目
[每日一题] 1705. 吃苹果的最大数目 避免每日太过咸鱼,一天搞定一道LeetCode算法题 一.题目描述 有一棵特殊的苹果树,一连 n 天,每天都可以长出若干个苹果.在第 i 天,树上会长出 a ...
- 【力扣】1705. 吃苹果的最大数目
1705. 吃苹果的最大数目 有一棵特殊的苹果树,一连 n 天,每天都可以长出若干个苹果.在第 i 天,树上会长出 apples[i] 个苹果,这些苹果将会在 days[i] 天后(也就是说,第 i ...
- 1705. 吃苹果的最大数目(贪心算法)
1705. 吃苹果的最大数目 难度中等104 有一棵特殊的苹果树,一连 n 天,每天都可以长出若干个苹果.在第 i 天,树上会长出 apples[i] 个苹果,这些苹果将会在 days[i] 天后(也 ...
- 模拟卷Leetcode【普通】1705. 吃苹果的最大数目
1705. 吃苹果的最大数目 有一棵特殊的苹果树,一连 n 天,每天都可以长出若干个苹果.在第 i 天,树上会长出 apples[i] 个苹果,这些苹果将会在 days[i] 天后(也就是说,第 i ...
- LeetCode 1705. 吃苹果的最大数目(优先队列)
文章目录 1. 题目 2. 解题 1. 题目 有一棵特殊的苹果树,一连 n 天,每天都可以长出若干个苹果. 在第 i 天,树上会长出 apples[i] 个苹果,这些苹果将会在 days[i] 天后( ...
- 力扣1705——吃苹果的最大数目(贪心+优先队列)
思路 对于此类有deadline的问题,首先想到贪心,直到deadline之前再做,这样才能为其他尽可能留出时间,才能做得更多. 首先想到的是按deadline排序,然后依次倒序在deadline前吃 ...
- LeetCode - 1705 - 吃苹果的最大数目 - Java - 细节~
文章目录 题目 题目解析 解题方法 : 贪心思想 + 优先队列 来跟着我一步步看,怎么实现这个代码 第一步: 创建 三个变量 和 new 一个 PriorityQueue(优先队列),并制定该队列,每 ...
最新文章
- rman命令学习-tina(下)
- android 自定义图形,Android自定义View之图形图像(模仿360的刷新球自定
- Python 相对路径、绝对路径的写法实例演示
- Django实现对数据库数据增删改查(二)
- Scala隐式转换动态丰富类库功能
- MFC中char*,string和CString之间的转换
- 检测到目标FTP服务可匿名访问
- 第48课 加加乐 《小学生C++趣味编程》
- PHP调用WebService接口
- DDFE 技术周刊(第四期)2016.11.25
- oracle一列有多个约束,在oracle中创建unique唯一约束(单列和多列)
- 带有参数的输出存储过程
- cmw500 lte非信令测试_买CMW500,信令与非信令的含义?功能?
- Java学习必备单词
- java pdfreader 用法_使用 iText 进行 Acroform 编辑的 Pdf
- mysql程序设计考试app_MySQL数据库设计与应用知到APP期末考试完整答案
- mysql .frm文件丢失_【1.1】mysql frm文件丢失(ibd文件丢失)
- php8最新版本特性,PHP8 了解新特性
- 快速增加图片大小KB
- 【AE表达式】300多个人名正从宇宙中飞来……