Minimum Hours of Training to Win a Competition
EasyArrayGreedy
Solution
export function minNumberOfHours(
initialEnergy: number,
initialExperience: number,
energy: number[],
experience: number[],
): number {
const n = energy.length;
let answer = 0;
let [currentEnergy, currentExperience] = [initialEnergy, initialExperience];
for (let i = 0; i < n; i++) {
const nextEnergy = Math.max(energy[i] + 1, currentEnergy);
const nextExperience = Math.max(experience[i] + 1, currentExperience);
answer += Math.max(nextEnergy - currentEnergy, 0);
answer += Math.max(nextExperience - currentExperience, 0);
currentEnergy = nextEnergy - energy[i];
currentExperience = nextExperience + experience[i];
}
return answer;
}