【Python】LeetCode 238. Product of Array Except Self
admin
2023-07-31 01:47:29
0

题目描述

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

总结

遇事多思考,轻易不要循环。

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
项目管理和工程管理的区别 项目管理 项目管理,顾名思义就是专注于开发和完成项目的管理,以实现目标并满足成功标准和项目要求。 工...