題目:
好長,大意是返回一個列表,列表中第i個元素爲nums中出了i以外元素的乘積
注意不能用除法,時間複雜度爲O(n) 空間複雜度爲O(1)
解題思路:
利用返回的列表從前往後算一遍,再從後往前算一次即可
代碼:
class Solution(object): def productExceptSelf(self, nums): """ :type nums: List[int] :rtype: List[int] """ result = [1] for i in range(1,len(nums)): result.append(result[i-1] * nums[i-1]) product = 1 for i in range(len(nums)-1,-1,-1): result[i] = product * result[i] product *= nums[i] return result