238 除自身以外陣列的乘積

2022-06-07 12:12:11 字數 744 閱讀 2702

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

示例:輸入: [1,2,3,4]

輸出: [24,12,8,6]

思路:使用左邊乘積和右邊乘積進行計算。

初始化陣列長度n。初始化res=[0,0,...,0]。

初試化乘積k=1:

從左向右遍歷,遍歷區間[0,n):res每個位置儲存它左側所有元素的乘積。即res[i]=k , k*=nums[i]

重置乘積k=1,用來儲存元素右邊的乘積和:

從右向左遍歷,遍歷區間(n,0]:res[i]*=k,表示將當前位置的左積乘以右積。

複雜度分析

時間複雜度:o(n),進行了兩次次遍歷。

空間複雜度:o(n),借助res儲存結果

class solution:

def productexceptself(self, nums: list[int]) -> list[int]:

n=len(nums)

res=[0]*n

k=1for i in range(n):

res[i]=k

k=k*nums[i]

k=1for i in range(n-1,-1,-1):

res[i]*=k

k*=nums[i]

return res

238 除自身以外陣列的乘積

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

238 除自身以外陣列的乘積

給定長度為 n 的整數陣列 nums,其中 n 1,返回輸出陣列 output 其中 output i 等於 nums 中除 nums i 之外其餘各元素的乘積。示例 輸入 1,2,3,4 輸出 24,12,8,6 高階 你可以在常數空間複雜度內完成這個題目嗎?出於對空間複雜度分析的目的,輸出陣列不...

238 除自身以外陣列的乘積

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