【一起摆烂】1705. 吃苹果的最大数目
1705. 吃苹果的最大数目 - 力扣(Leetcode)
(https://leetcode.cn/problems/maximum-number-of-eaten-apples/description/)
摆烂人,还请各位大佬多多指点。
题目自行去看力扣官网。
知识点:贪心算法,优先队列
思路:题目给了两个数组,下标代表第几天,apples:每天会长几个苹果。days:每天生长出来的苹果,第几天后腐烂,也就是在第i+days[i]天会腐烂。
我的想法就是利用贪心算法和优先队列。
创建一个数组对象newApple,里面放两个值,一个是当天生长出来的苹果数量,一个是在第几天苹果会腐烂。
把newApple放入到优先队列中(根据腐烂时间进行排序)
然后就是吃苹果,分为两部分,生长苹果期间吃苹果和苹果不再生长吃剩下的苹果
生长期间吃苹果,首先判断苹果有没有腐烂,把腐烂的苹果扔掉,再吃
不再生长苹果吃剩下的苹果同样判断苹果有没有腐烂,然后吃苹果
其他请看代码注释
(优先队列使用方法可以参考这篇文章https://blog.csdn.net/qq_43776742/article/details/92831821)
(堆的理解可以看这个视频: https://www.bilibili.com/video/BV1uK4y177nQ/?share_source=copy_web&vd_source=d45b41d11a6a375554b2d44a668e49ad)
(大根堆,小根堆的写法可以参考这篇文章:https://blog.csdn.net/weixin_60664694/article/details/127769765)