资讯专栏INFORMATION COLUMN

【Python】LeetCode 238. Product of Array Except Self

kaka / 1548人阅读

摘要:题目描述题目解析简单来说就是对于数组中每一项,求其他项之积。算一遍全部元素的积再分别除以每一项要仔细考虑元素为零的情况。没有零直接除下去。一个零零的位置对应值为其他元素之积,其他位置为零。两个以上的零全部都是零。

题目描述

Given an array of n integers where n > 1, nums, return an array output such that output[i] is equal to the product of all the elements of nums except nums[i].

Solve it without division and in O(n).

For example, given [1,2,3,4], return [24,12,8,6].

题目解析

简单来说就是对于数组中每一项,求其他项之积。

解题思路 对于每一项硬算其他项之积

恭喜你,你超时了。

算一遍全部元素的积再分别除以每一项

要仔细考虑元素为零的情况。

没有零

直接除下去。

一个零

零的位置对应值为其他元素之积,其他位置为零。

两个以上的零

全部都是零。

AC代码
class Solution(object):
    def productExceptSelf(self, nums):
        """
        :type nums: List[int]
        :rtype: List[int]
        """
        try:
            from functools import reduce
        finally:
            pass
        res = []
        zeros = nums.count(0)
        if zeros == 0:
            product = reduce(lambda x, y: x * y, nums)
            res = [product // x for x in nums]
        elif zeros == 1:
            now = nums[::]
            pos = now.index(0)
            del now[pos]
            product = reduce(lambda x, y: x * y, now)
            res = [0 if x != pos else product for x in range(len(nums))]
        else:
            res = [0] * len(nums)
        return res
总结
遇事多思考,轻易不要循环。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/45506.html

相关文章

  • LeetCode 238 Product of Array Except Self

    Given an array of n integers where n > 1, nums, return an array output such that output[i] is equal to the product of all the elements of nums except nums[i].Solve it without division and in O(n). For...

    henry14 评论0 收藏0
  • [LeetCode] 238. Product of Array Except Self

    Problem Given an array of n integers where n > 1, nums, return an array output such that output[i] is equal to the product of all the elements of nums except nums[i]. Solve it without division and in ...

    Loong_T 评论0 收藏0
  • 238. Product of Array Except Self

    问题:Given an array of n integers where n > 1, nums, return an array output such that output[i] is equal to the product of all the elements of nums except nums[i]. Solve it without division and in O(n)....

    刘永祥 评论0 收藏0
  • [LeetCode] Product of Array Except Self

    Problem Given an array of n integers where n > 1, nums, return an array output such that output[i] is equal to the product of all the elements of nums except nums[i]. Solve it without division and in ...

    golden_hamster 评论0 收藏0
  • [Leetcode] Product of Array Except Self 自身以外的数组乘积

    摘要:动态规划复杂度时间空间思路分析出自身以外数组乘积的性质,它实际上是自己左边左右数的乘积,乘上自己右边所有数的乘积。所以我们可以用一个数组来表示第个数字前面数的乘积,这样。同理,我们可以反向遍历一遍生成另一个数组。 Product of Array Except Self Given an array of n integers where n > 1, nums, return an...

    rockswang 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<