diff --git a/src/main/java/icu/samnyan/aqua/api/controller/sega/game/maimai2/Maimai2New.kt b/src/main/java/icu/samnyan/aqua/api/controller/sega/game/maimai2/Maimai2New.kt index 6f5f59de..a3ff91db 100644 --- a/src/main/java/icu/samnyan/aqua/api/controller/sega/game/maimai2/Maimai2New.kt +++ b/src/main/java/icu/samnyan/aqua/api/controller/sega/game/maimai2/Maimai2New.kt @@ -30,9 +30,13 @@ class Maimai2New( // Precompute the play counts for each date in O(n) val playCounts = d.groupingBy { it.playDate }.eachCount() + // Find the max afterRating on each date + val maxRating = d.groupingBy { it.playDate }.fold(0) { acc, e -> maxOf(acc, e.afterRating) } + // Use the precomputed play counts return d.distinctBy { it.playDate } - .map { TrendOut(it.playDate, it.afterRating, playCounts[it.playDate] ?: 0) } + .map { TrendOut(it.playDate, maxRating[it.playDate] ?: 0, + playCounts[it.playDate] ?: 0) } .sortedBy { it.date } }