Product of Array Except Self

MediumArrayPrefix Sum

Solution

export function productExceptSelf(nums: number[]): number[] {
  const n = nums.length;
  const answer = new Array<number>(n).fill(1);
 
  // 누적 곱을 처음에서 시작하는 것과 뒤에서 시작하는 것을 한 번의 반복으로 계산
  let [prefix, suffix] = [1, 1];
  for (let i = 0; i < n; i++) {
    answer[i] *= prefix;
    prefix *= nums[i];
 
    answer[n - i - 1] *= suffix;
    suffix *= nums[n - i - 1];
  }
  return answer;
}