Min Rewards

n^2, n
function minRewards(scores) {
const rewards = new Array(scores.length).fill(1);
for (let i = 1; i < scores.length; i++) {
if (scores[i - 1] < scores[i]) {
rewards[i] = rewards[i - 1] + 1;
continue;
}
let j = i - 1;
while (j >= 0 && scores[j] > scores[j + 1]) {
rewards[j] = Math.max(rewards[j], rewards[j + 1] + 1);
j--;
}
}
let sum = 0;
for (let i = 0; i < rewards.length; i++) {
sum += rewards[i];
}
return sum;
}optimized
n, n
Last updated