题解 | #除自身以外数组的乘积#

除自身以外数组的乘积

http://www.nowcoder.com/practice/0786aa81c1c64c2a990e393fac811b45

利用左右前缀数组,对数据进行预处理,得到 每个值左侧和右侧的乘积,则除自身外的乘积为 左侧乘积 * 右侧乘积

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param nums int整型一维数组 
# @return int整型一维数组
#
class Solution:
    def timesExceptSelf(self , nums: List[int]) -> List[int]:
        # write code here
        l, r = [1 for _ in range(len(nums))], [1 for _ in range(len(nums))]
        for i in range(1, len(nums)):
            l[i] = l[i - 1] * nums[i - 1]
        for i in range(len(nums) - 2, -1, -1):
            r[i] = r[i + 1] * nums[i + 1]
        res = [0 for _ in range(len(nums))]
        for i in range(len(nums)):
            res[i] = l[i] * r[i]
        return res
        
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务