5638. 吃苹果的最大数目
状态:AC
代码:注意未获得的苹果暂时不能吃
class Solution {
public:
int eatenApples(vector<int>& apples, vector<int>& days) {
int m = 0;
int ans = 0;
for(int i = 0;i<days.size();i++){
m = max(m,days[i] + i);
}
vector<int> left(m+1,0);
int i=0;
m = 0;
int j = 0;
for(i = 0;i<apples.size();i++){
m = max(m,i+days[i]);
left[i+days[i]] += apples[i];
left[i] = 0;
for(j = i;j<=m&&left[j]==0;j++);
if(j<=m){
left[j]--;
ans++;
}
}
for(;i<left.size()-1;i++){
left[i] = 0;
for(;j<left.size()&&left[j]==0;j++);
if(j<left.size()){
left[j]--;
ans++;
}else{
return ans;
}
}
return ans;
}
};