電商網(wǎng)站開(kāi)發(fā)技術(shù)與維護(hù)互聯(lián)網(wǎng)營(yíng)銷策劃案
給你一個(gè)整數(shù)數(shù)組 nums,返回 數(shù)組 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘積 。
題目數(shù)據(jù) 保證 數(shù)組 nums之中任意元素的全部前綴元素和后綴的乘積都在 32 位 整數(shù)范圍內(nèi)。
請(qǐng) 不要使用除法,且在 O(n) 時(shí)間復(fù)雜度內(nèi)完成此題。
示例 1:
輸入: nums = [1,2,3,4]
輸出: [24,12,8,6]
示例 2:
輸入: nums = [-1,1,0,-3,3]
輸出: [0,0,9,0,0]
解法一:
/*** @param {number[]} nums* @return {number[]}*/const productExceptSelf = function (nums) {let i = 0,newNums = []while (i<nums.length){let num = 1for (let j = 0; j < nums.length; j++) {if (i!==j){num = nums[j] * num}}newNums.push(num===0?0:num)i++}};
解法二:
/*** @param {number[]} nums* @return {number[]}*/const productExceptSelf2 = function (nums) {let i = 0,newNums = []while (i<nums.length){let num = 1for (let j = 0; j < nums.length; j++) {if (i!==j){if(nums[j]===0){num = 0break}else{num = nums[j] * num}}}newNums.push(num)i++}return newNums};