238. 除自身以外数组的乘积

给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。

示例:
输入: [1,2,3,4]
输出: [24,12,8,6]
说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题。

题解

/**
 * @param {number[]} nums
 * @return {number[]}
 */
var productExceptSelf = function(nums) {
    let i = 0, left = 1,
    right = 1,arr=new Array(nums.length).fill(undefined).map(i=>1)
    while (i < nums.length) {
        arr[i] *= left
        arr[nums.length - 1 - i] *= right
        left *= nums[i]
        right *= nums[nums.length - 1 - i]
        i++
    }
    return arr
};

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注