除自身以外数组的乘积-中等

难度:中等

题目描述:
给你一个长度为  n  的整数数组  nums,其中  n > 1,返回输出数组  output ,其中 output[i]  等于  nums  中除  nums[i]  之外其余各元素的乘积。

示例:

输入: [1, 2, 3, 4];
输出: [24, 12, 8, 6];
1
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
最后更新时间: 5/27/2020, 7:50:23 PM