[리트코드] 238. Product of Array Except Self
238. Product of Array Except Self
나의 풀이
var productExceptSelf = function (nums) {
const multi = nums.reduce((acc, cur) => acc * cur, 1);
return nums.map(v => multi / v);
};
사실 이 방법이 제일 간단하지만 문제 조건으로 나누기 연산자를 사용하지 말라고 했다.
/**
* @param {number[]} nums
* @param {number} k
* @return {number[]}
*/
var productExceptSelf = function (nums) {
const result = [];
let left = 1;
let right = 1;
for (let i = 0; i < nums.length; i++) {
result.push(left);
left *= nums[i];
}
for (let i = nums.length - 1; i >= 0; i--) {
result[i] *= right;
right *= nums[i];
}
return result;
};
left, right를 기준으로 앞/뒤로 한번씩 순회해서 구했다.