#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param nums int整型一维数组 
# @return int整型一维数组
#
class Solution:
    def timesExceptSelf(self , nums: List[int]) -> List[int]:
        # write code here
        n = len(nums)
        lm, rm = nums[:], nums[:]
        for i in range(1,n):#左边累乘积
            lm[i] *= lm[i-1]
        for i in range(n-2,-1,-1):#右边累乘积
            rm[i] *= rm[i+1]
        ans = [0]*n
        for i in range(n):#左右累乘积的乘积
            if i==0:
                ans[i] = rm[i+1]
            elif i==n-1:
                ans[i] = lm[i-1]
            else:
                ans[i] = rm[i+1]*lm[i-1]
        return ans