LC 速查

HOT 100索引 › B5 普通数组 Array

LC 238除了自身以外数组的乘积Product of Array Except Self 中等

返回结果数组,使每项等于除自身以外全部元素的乘积,不使用除法。

思路 前缀积×后缀积:先正向写入左侧积,再逆向乘上右侧积,输出数组即答案。时间 O(n)、额外空间 O(1)。

class Solution:
    def productExceptSelf(self, nums: List[int]) -> List[int]:
        n = len(nums)
        ans = [1] * n
        pre = 1
        for i in range(n):  # ans[i] = 左侧前缀积
            ans[i] = pre
            pre *= nums[i]
        suf = 1
        for i in range(n - 1, -1, -1):  # 乘右侧后缀积
            ans[i] *= suf
            suf *= nums[i]
        return ans
← 上一题 轮转数组缺失的第一个正数 下一题 →