LeetCode 238 除自身以外陣列的乘積

2021-10-04 06:25:19 字數 849 閱讀 1403

思路:求解除自身以外的所有數字的乘積,就是求解自身左側的乘積與右側乘積的乘積,可以分為兩個子問題:自左向右求解累乘結果;自右向左求解累乘結果。已經計算的結果可以重複使用。**如下:

public int productexceptself(int nums) 

int n=nums.length;

int leftres=new int[n];

int rightres=new int[n];

int answer=new int[n];

//求解左側累乘結果與右側累乘結果

leftres[0]=nums[0];

rightres[n-1]=nums[n-1];

for(int i=1;i高階:因為題目說明answer不在空間計算範圍內,所以可以將乙個輔助陣列放到answer陣列,另乙個輔助陣列使用單個累乘結果存放。**如下:

public int productexceptself(int nums)

int n=nums.length;

//answer存放自左向右累乘結果

int answer=new int[n];

answer[0]=1;

//rightres存放自右向左累乘結果

int rightres=1;

//自左向右計算answer

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

return answer;

}

leetcode 238 除自身以外陣列的乘積

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

leetcode238 除自身以外陣列的乘積

從左到右遍歷一趟,記錄每個位置左邊的乘積 首位為1 從右到左走一趟,將上一步的結果累乘每一位右邊的乘積 class solution object def productexceptself self,nums if not nums return output 1 len nums k 1 for...

LeetCode 238 除自身以外陣列的乘積

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