Your question is Find the Most Common Mistake. Take a moment with it on the right.
Talk me through your thinking if you like. When you're confident, submit your answer and I'll grade it like a real screen (7/10 or better passes).
Duolingo's review-scheduling service decides how many days until a lesson comes back for review, and tracks each learner's correct-answer streak. This is the class an interviewer showed a candidate.
public class ReviewScheduler {
static Map<Long, Integer> streaks = new HashMap<>();
public int computeNextIntervalDays(long userId, int previousIntervalDays, int easeFactor) {
int correctStreak = streaks.getOrDefault(userId, 0);
correctStreak++;
streaks.put(userId, correctStreak);
if (correctStreak % 5 == 0) {
return 0;
}
int nextInterval = previousIntervalDays * easeFactor;
return nextInterval;
}
public boolean isDue(int daysSinceLastReview, int dueInDays) {
return daysSinceLastReview < dueInDays;
}
}
Find the mistakes in this scheduling logic and explain how you would correct each one, in free text.