diff --git a/work/Medium/Array/238.product-of-array-except-self.js b/work/Medium/Array/238.product-of-array-except-self.js index 0511844..10a834d 100644 --- a/work/Medium/Array/238.product-of-array-except-self.js +++ b/work/Medium/Array/238.product-of-array-except-self.js @@ -46,9 +46,22 @@ */ /** - * @param {number[]} _nums + * @param {number[]} nums * @return {number[]} */ -var productExceptSelf = function(_nums - +var productExceptSelf = function(nums) { + const n = nums.length; + const answer = new Array(n).fill(1); + const rightArr = new Array(n).fill(1); + + for (let i = 1; i < n; i++) { + answer[i] = nums[i - 1] * answer[i - 1]; + } + for (let i = n - 2; i >= 0; i--) { + rightArr[i] = nums[i + 1] * rightArr[i + 1]; + } + for (let i = 0; i < n; i++) { + answer[i] *= rightArr[i]; + } + return answer; };