給定長度為 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 時間複雜度內完成此題。高階...