题目:吃苹果的最大数目
Java代码
public class Solution {
public int eatenApples(int[] apples, int[] days) {
int maxDay = 0;
for (int i = 0; i < days.length; i++) {
maxDay = Math.max(i + days[i], maxDay);
}
int[] tmp = new int[maxDay];
int curMax = maxDay, res = 0;
for (int i = 0; i < maxDay; i++) {
if (i < apples.length && apples[i] != 0) {
tmp[i + days[i] - 1] += apples[i];
curMax = Math.min(curMax, i + days[i] - 1);
}
int idx = Math.max(i, curMax);
while (idx < maxDay && tmp[idx] == 0) {
idx++;
}
if (idx != maxDay) {
tmp[idx]--;
res++;
}
}
return res;
}
}