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

2021-10-03 00:08:45 字數 945 閱讀 4590

1.左右乘積列表

這個題目當然也是劍指offer裡的題目,方法就是構造乙個左乘積陣列left,構造乙個右乘積陣列right,然後對於每乙個i,它的結果就應該是left[i-1] * right[i+1]。思想比較好理解直接上**:

public

int[

]productexceptself

(int

nums)

int[

] result =

newint

[nlength]

;for

(int i =

1; i < nlength-1;

++i)

result[0]

= right[1]

; result[nlength-1]

= left[nlength-2]

;return result;

}

2.動態構建右(左)陣列

上面我們構建了兩個輔助陣列,然後最後得到乙個結果陣列。那如果不使用額外的空間呢,也好辦。我們就先讓結果陣列是左陣列,然後動態的去找相應的right值並與左陣列的元素想乘得到結果。**如下:

public

int[

]productexceptself

(int

nums)

int right =1;

//right初始為1

for(

int i = nlength-

1; i >0;

--i)

result[0]

= right;

//最後的這個result就是0,相當於-1的位置的left也為1,和right初始為1對應

return result;

}

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 時間複雜度內完成此題。高階 你可以在常...