除自身以外陣列的乘積

2021-09-11 23:19:08 字數 890 閱讀 6556

給定長度為 n 的整數陣列nums,其中 n > 1,返回輸出陣列output,其中output[i]等於nums中除nums[i]之外其餘各元素的乘積。

示例:

輸入:[1,2,3,4]輸出:[24,12,8,6]
說明:不要使用除法,且在 o(n) 時間複雜度內完成此題。

高階:

你可以在常數空間複雜度內完成這個題目嗎?( 出於對空間複雜度分析的目的,輸出陣列不被視為額外空間。)

思路:採用後乘積陣列或前乘積陣列。

從後向前遍歷,同時累乘,得到後乘積陣列,陣列儲存的是不包括當前元素的其後所有元素的乘積

從前向後遍歷,同時累乘,得到前乘積陣列,陣列儲存的是不包括當前元素的其前所有元素的乘積

為了減少額外空間,只使用後乘陣列,使用乙個int t儲存疊成結果,那麼t中儲存的是不包括當前元素的前面元素的乘積結果

從前向後遍歷後乘陣列同時乘以t得到的就是不包括當前元素的前後所有元素乘積。

public int productexceptself(int nums) 

for(int i=1;i=0;i--)

t=1;

for(int i=0;ireturn post;

}

除自身以外陣列的乘積

目錄 1 題目描述 2 題目分析 3 實現 給定長度為 n 的整數陣列nums,其中 n 1,返回輸出陣列output,其中output i 等於nums中除nums i 之外其餘各元素的乘積。示例 輸入 1,2,3,4 輸出 24,12,8,6 說明 請不要使用除法,且在 o n 時間複雜度內完成...

除自身以外陣列的乘積

提交 總結給你乙個長度為 n 的整數陣列 nums,其中 n 1,返回輸出陣列 output 其中 output i 等於 nums 中除 nums i 之外其餘各元素的乘積。示例 輸入 1,2,3,4 輸出 24,12,8,6 說明 請不要使用除法,且在 o n 時間複雜度內完成此題。高階 你可以...

除自身以外陣列的乘積

leetcode 238 左右列表 public int productexceptself int nums for int i nums.length 2 i 0 i for int i 0 i return res 空間為o 1 由於輸出陣列不算在空間複雜度內,那麼我們可以將 l 或 r 陣列...