链接: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. 吃苹果的最大数目相关推荐

  1. 1705. 吃苹果的最大数目(贪心、优先队列(堆)、哈希表),总之先吃快烂的苹果

    1705. 吃苹果的最大数目 题干 有一棵特殊的苹果树,一连 n 天,每天都可以长出若干个苹果.在第 i 天,树上会长出 apples[i] 个苹果,这些苹果将会在 days[i] 天后(也就是说,第 ...

  2. LeetCode - 1705 吃苹果的最大数目

    目录 题目来源 题目描述 示例 提示 题目解析 算法源码 题目来源 1705. 吃苹果的最大数目 - 力扣(LeetCode) 题目描述 有一棵特殊的苹果树,一连 n 天,每天都可以长出若干个苹果.在 ...

  3. 【每日一题】 1705. 吃苹果的最大数目

    [每日一题] 1705. 吃苹果的最大数目 避免每日太过咸鱼,一天搞定一道LeetCode算法题 一.题目描述 有一棵特殊的苹果树,一连 n 天,每天都可以长出若干个苹果.在第 i 天,树上会长出 a ...

  4. 【力扣】1705. 吃苹果的最大数目

    1705. 吃苹果的最大数目 有一棵特殊的苹果树,一连 n 天,每天都可以长出若干个苹果.在第 i 天,树上会长出 apples[i] 个苹果,这些苹果将会在 days[i] 天后(也就是说,第 i ...

  5. 1705. 吃苹果的最大数目(贪心算法)

    1705. 吃苹果的最大数目 难度中等104 有一棵特殊的苹果树,一连 n 天,每天都可以长出若干个苹果.在第 i 天,树上会长出 apples[i] 个苹果,这些苹果将会在 days[i] 天后(也 ...

  6. 模拟卷Leetcode【普通】1705. 吃苹果的最大数目

    1705. 吃苹果的最大数目 有一棵特殊的苹果树,一连 n 天,每天都可以长出若干个苹果.在第 i 天,树上会长出 apples[i] 个苹果,这些苹果将会在 days[i] 天后(也就是说,第 i ...

  7. LeetCode 1705. 吃苹果的最大数目(优先队列)

    文章目录 1. 题目 2. 解题 1. 题目 有一棵特殊的苹果树,一连 n 天,每天都可以长出若干个苹果. 在第 i 天,树上会长出 apples[i] 个苹果,这些苹果将会在 days[i] 天后( ...

  8. 力扣1705——吃苹果的最大数目(贪心+优先队列)

    思路 对于此类有deadline的问题,首先想到贪心,直到deadline之前再做,这样才能为其他尽可能留出时间,才能做得更多. 首先想到的是按deadline排序,然后依次倒序在deadline前吃 ...

  9. LeetCode - 1705 - 吃苹果的最大数目 - Java - 细节~

    文章目录 题目 题目解析 解题方法 : 贪心思想 + 优先队列 来跟着我一步步看,怎么实现这个代码 第一步: 创建 三个变量 和 new 一个 PriorityQueue(优先队列),并制定该队列,每 ...

最新文章

  1. rman命令学习-tina(下)
  2. android 自定义图形,Android自定义View之图形图像(模仿360的刷新球自定
  3. Python 相对路径、绝对路径的写法实例演示
  4. Django实现对数据库数据增删改查(二)
  5. Scala隐式转换动态丰富类库功能
  6. MFC中char*,string和CString之间的转换
  7. 检测到目标FTP服务可匿名访问
  8. 第48课 加加乐 《小学生C++趣味编程》
  9. PHP调用WebService接口
  10. DDFE 技术周刊(第四期)2016.11.25
  11. oracle一列有多个约束,在oracle中创建unique唯一约束(单列和多列)
  12. 带有参数的输出存储过程
  13. cmw500 lte非信令测试_买CMW500,信令与非信令的含义?功能?
  14. Java学习必备单词
  15. java pdfreader 用法_使用 iText 进行 Acroform 编辑的 Pdf
  16. mysql程序设计考试app_MySQL数据库设计与应用知到APP期末考试完整答案
  17. mysql .frm文件丢失_【1.1】mysql frm文件丢失(ibd文件丢失)
  18. php8最新版本特性,PHP8 了解新特性
  19. 快速增加图片大小KB
  20. 【AE表达式】300多个人名正从宇宙中飞来……

热门文章

  1. 原型万事通,你想知道(但不敢问)的都在这里
  2. VO、DTO、DO、PO的概念
  3. 图片上传,CheckBox等用户控件的应用代码
  4. 做了个梦,你大爷的,叫什么事啊,吓死我了!
  5. 历时2年《爱上Android》出版了
  6. Mac 常用快捷键与操作
  7. 关于iconfont的一些东西
  8. Oracle hint手动优化
  9. mysql 主从手动切换
  10. x86保护模式 任务状态段和控制门