1. 程式人生 > >238. 除自身以外陣列的乘積

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

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

輸入: [1,2,3,4]
輸出: [24,12,8,6]

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

進階:
你可以在常數空間複雜度內完成這個題目嗎?( 出於對空間複雜度分析的目的,輸出陣列不被視為額外空間。)

python3

class Solution:
        def productExceptSelf(self, nums):
            output = []
            for
i in range(0, len(nums)): tmp = nums[0] nums.pop(0) a = 1 for i in nums: a *= i output.append(a) nums.append(tmp) return output

報了TLE錯誤,好吧很明顯時間複雜度 o(n2)

python3

class Solution
: def productExceptSelf(self, nums): a = [1] b = [1] for i in range(0,len(nums)-1): a.append(a[i]*nums[i]) b.append(b[i]*nums[-i-1]) output = [] for j in range(0,len(a)): output.append(a[j]*b[-j-1]) return
output