题目:

 好长,大意是返回一个列表,列表中第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