LeetCode238除自身以外数组的乘积

题目描述

给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。

示例:

输入: [1,2,3,4]
输出: [24,12,8,6]

说明: 请**不要使用除法,**且在 O(n) 时间复杂度内完成此题

解题思路

本题是一道数组相关的题目。

因为不能用除法,只能用乘法,而一个元素的预期结果值是其两边元素的乘积,所以,可以使用两个数组来分别记录该元素左右数字的乘积。

算法实现

GitHub 上Python测试代码地址

def productExceptSelf(nums):
    """
    :type nums: List[int]
    :rtype: List[int]
    """
    size = len(nums)
    tmp = 1
    result = [1]
    for i in range(1, size):
        tmp *= nums[i - 1]
        result.append(tmp)
    tmp = 1
    for i in range(size - 2, -1, -1):
        tmp *= nums[i + 1]
        result[i] *= tmp
    return result

你可能感兴趣的:(刷题)