[238] 除自身以外数组的乘积

49 阅读1分钟
/*
 * @lc app=leetcode.cn id=238 lang=javascript
 *
 * [238] 除自身以外数组的乘积
 */

// @lc code=start
/**
 * @param {number[]} nums
 * @return {number[]}
 */
var productExceptSelf = function (nums) {
  // 创建一个nums长度初始化为1的数组
  let result = Array(nums.length).fill(1)
  // 先从左边遍历,第一个元素的左边是1
  //[1,2,3,4,5]
  // [1,1,2,6,24]
  let product = 1
  for (let i = 0; i < nums.length; i++) {
    result[i] = product * result[i]
    product = nums[i] * product
  }
  // 从右边遍历,第一个元素的左边是1
  //[1,2,3,4,5]
  // [1,1,2,6,24]
  // [120,60,40,30,24]
  product = 1
  for (let i = nums.length-1; i >= 0; i--) {
    result[i] = product * result[i]
    product = nums[i] * product
  }
  return result
}
// @lc code=end