输出除自身外数组的乘积,不用除法完成,解题思路,首先从左往右循环,用一个数组来记录从左到右的左侧乘积,这里可以借助结果数组减少空间,再从右往左循环一次,每个结果等于他的左侧乘积乘以右侧乘积,注意处理边缘变量
var productExceptSelf = function(nums) {
let length = nums.length
let result = Array(length).fill(1)
result[0] = nums[0]
let right = 1
for(let i =1; i<length; i++){
result[i] = result[i-1] * nums[i]
}
for(let j =length-1; j>0; j--) {
result[j] = result[j-1]*right
right*=nums[j]
}
result[0] = right
return result
};
网友评论