Problem
My Solution
success
function fountainActivation(locations) {
let cnt = 1;
let pos = [...locations].fill(-1);
let idxLeft, idxRight;
for (let i = 0; i < locations.length; i++) {
idxLeft = Math.max(i - locations[i], 0);
idxRight = Math.min(i + (locations[i] + 1), locations.length);
pos[idxLeft] = Math.max(pos[idxLeft], idxRight);
}
let idxNext = 0;
idxRight = pos[0];
for (let i = 0; i < locations.length; i++) {
idxNext = Math.max(idxNext, pos[i]);
if (i === idxRight) {
cnt++;
idxRight = idxNext;
}
}
return cnt;
}