diff --git a/README.md b/README.md index aa044d8..6892e30 100644 --- a/README.md +++ b/README.md @@ -366,6 +366,10 @@ LeetCode 与 LintCode 解题记录。此为个人练习仓库,代码中对重 - LeetCode 1431. 拥有最多糖果的孩子 +- [除自身以外数组的乘积](src/array/product-of-array-except-self.js) + + - LeetCode 238. 除自身以外数组的乘积 + ## 栈 - [最大矩阵](src/stack/maximal-rectangle.js) diff --git a/src/array/product-of-array-except-self.js b/src/array/product-of-array-except-self.js new file mode 100644 index 0000000..d57a1e7 --- /dev/null +++ b/src/array/product-of-array-except-self.js @@ -0,0 +1,21 @@ +/** + * @param {number[]} nums + * @return {number[]} + */ +export const productExceptSelf = function (nums) { + const ans = [] + for (let i = 0, len = nums.length; i < len; i++) { + let tmpL = 1 + let tmpR = 1 + for (let j = 0; j < len; j++) { + if (j < i) { + tmpL *= nums[j] + } else if (j > i) { + tmpR *= nums[j] + } + } + ans.push(tmpL * tmpR) + } + + return ans +} diff --git a/test/array/product-of-array-except-self.test.js b/test/array/product-of-array-except-self.test.js new file mode 100644 index 0000000..293b73a --- /dev/null +++ b/test/array/product-of-array-except-self.test.js @@ -0,0 +1,5 @@ +import { productExceptSelf } from '../../src/array/product-of-array-except-self' + +test('除自身以外数组的乘积', () => { + expect(productExceptSelf([1, 2, 3, 4])).toEqual([24, 12, 8, 6]) +})