平安夜快乐🤶 外面的热闹与我无关,我只觉得他们吵闹。
题目
https://leetcode-cn.com/problems/maximum-number-of-eaten-apples/
代码
class Solution {
public int eatenApples(int[] apples, int[] days) {
PriorityQueue<int[]> queue=new PriorityQueue<>((a,b)->(a[0]-b[0]));//按日期排序
int n=apples.length;
int time=0;
int res=0;
while(time<n||!queue.isEmpty()){//还在长苹果 或者 队列不为空
//加入今天长的苹果
if(time<n&&apples[time]>0){
queue.add(new int[]{time+days[time]-1,apples[time]});//最晚能食用的时间,苹果数量
}
//扔掉过期苹果
while(!queue.isEmpty()&&queue.peek()[0]<time){
queue.poll();
}
//今天吃苹果
if(!queue.isEmpty()){
int[] cur=queue.poll();//弹出最快过期的
cur[1]--;//吃一个
res++;
if(cur[1]>0){//吃了一个还有
queue.add(cur);
}
}
time++;
}
return res;
}
}