除自身以外数组的乘积-中等
难度:中等
题目描述:
给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。
示例:
输入: [1, 2, 3, 4];
输出: [24, 12, 8, 6];
1
2
2
解题思路:
1.记录每个元素左面所有元素的乘积(不包括自身)
2.右边的乘积不需要记录,直接和左面乘积相乘
function reverseList(nums) {
let n = 1;
let result = [1];
for (let i = 1; i < nums.length; i++) {
n *= nums[i - 1];
result[i] = n;
}
console.log(result);
n = 1;
for (let i = nums.length - 1; i > 0; i--) {
n *= nums[i];
result[i - 1] *= n;
}
return result;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15