栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

除自身以外数组的乘积

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

除自身以外数组的乘积

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

思路:每个元素的乘积可以分为前缀积和后缀积,如“2”的前缀积为“1”,后缀积为“3*4”,“1的前缀积为”1“,”4“的后缀积为”1“,因此,可以先正向遍历数组,求出每个元素的前缀积,再逆向遍历数组,求每个元素的后缀积,最后将每个元素的前缀积于后缀积相乘便是该元素除自身外的乘积。

class Solution:
    def productExceptSelf(self, nums):
        answer = [0 for _ in range(len(nums))]
        answer[0] = 1
        for i in range(1,len(nums)):
            answer[i] = answer[i-1] * nums[i-1]
        r = 1       # 由于后缀积最终要与前缀积相乘,所以我们可以先用"r"来表示当前元素的后缀积,# 求的结果后直接与前缀积相乘,减少空间复杂度
        for j in range(len(nums)-2,-1,-1):
            r *= nums[j+1]
            answer[j] = answer[j] * r
        return answer

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/268423.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号