238 除自身以外陣列的乘積

2021-09-26 23:38:58 字數 720 閱讀 5454

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

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

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

說明: 請不要使用除法,且在 o(n) 時間複雜度內完成此題。

分析: 如果引入乙個o(n)的空間複雜度,那就很easy,用乙個陣列記錄從左往右的連續乘積,另乙個陣列記錄從右往左的連續乘積,這樣很容易就可以計算出來了。那可不可以不引入額外的空間呢?

當然是可以的,我們用乙個迴圈遍歷陣列nums的時候,同時記錄左邊的連續乘積和右邊的連續乘積,這樣就ok了。

class solution(object):

def productexceptself(self, nums):

""":type nums: list[int]

:rtype: list[int]

"""res=[1 for i in range(len(nums))]

left,right=1,1

for i in range(len(nums)):

res[i]*=left

left*=nums[i]

res[len(nums)-1-i]*=right

right*=nums[len(nums)-1-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 時間複雜度內完成此題。高階...