YBFACC / blog

仅记录个人学习使用
3 stars 0 forks source link

238-除自身以外数组的乘积 #10

Open YBFACC opened 4 years ago

YBFACC commented 4 years ago

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

我的思路

从左扫一遍,累乘得到一个left数组

从右扫一遍,累乘得到一个right数组

把nums [ i ] 的left [ i -1 ] * right [ i +1 ]得到答案数组

未命名文件

代码实现

var productExceptSelf = function (nums) {
  let left = [1]

  for (let i = 0; i < nums.length; i++) {
    left[i + 1] = left[i] * nums[i]
  }
  left.push(1)

  let right = [1]
  right[nums.length + 1] = 1
  for (let i = nums.length; i > 0; i--) {
    right[i] = right[i + 1] * nums[i - 1]
  }

  let res = []

  for (let i = 0; i < left.length - 2; i++) {
    res[i] = left[i] * right[i + 2]
  }

  return res
}