当前位置: 首页 > news >正文

238.除自身以外数组的乘积

题目:

给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。

题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在  32 位 整数范围内。

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

示例 1:

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

示例 2:

输入: nums = [-1,1,0,-3,3]
输出: [0,0,9,0,0]

提示:

  • 2 <= nums.length <= 105
  • -30 <= nums[i] <= 30
  • 输入 保证 数组 answer[i] 在  32 位 整数范围内

进阶:你可以在 O(1) 的额外空间复杂度内完成这个题目吗?( 出于对空间复杂度分析的目的,输出数组 不被视为 额外空间。)

解题思路:

构造前缀乘积与后缀乘积,除去当前值的乘积等于前缀乘积×后缀乘积

代码:

class Solution:
    def productExceptSelf(self, nums):
        length = len(nums)
        if length==2:
            return nums[::-1]
        forward = [0]*length
        backward = [0]*length
        forward[0] = nums[0]
        backward[length-1] = nums[length-1]
        outputs = []
        for i in range(1, length):
            forward[i] = nums[i]*forward[i-1]
        for i in range(length-2, -1, -1):
            backward[i] = backward[i+1]*nums[i]
        
        for i in range(length):
            if i==0:
                outputs.append(backward[1])
            elif i==length-1:
                outputs.append(forward[i-1])
            else:
                outputs.append(forward[i-1]*backward[i+1])
        return outputs

http://www.dtcms.com/a/79824.html

相关文章:

  • 【sgHelp】自定义组件:网站、平台右下角的帮助助手、指导助理
  • app测试必须进行吗?需要进行哪些测试?
  • 混元视频与万相2.1全面对比分析
  • 嵌入式笔记 | 正点原子STM32F103ZET6 4 | 中断补充
  • 搭建个人博客教程(Hexo)
  • Django+celery+flower
  • 【文件分类助手V1.0b】支持自定义后缀分类整理及目录文档自动生成,方便大家美化管理自己的PC文件库支持Win10/11
  • 【从零开始学习计算机科学与技术】计算机网络(三)数据链路层
  • 蓝桥杯备考---》分类讨论之Fixed Points
  • 在Ubuntu20.04上交叉编译能在Windows上运行的Qt5应用
  • Vue3 集成wangEditor 5
  • 鸿蒙开发真机调试:无线调试和USB调试
  • MQ,RabbitMQ,MQ的好处,RabbitMQ的原理和核心组件,工作模式
  • LeetCode 解题思路 22(Hot 100)
  • 9.嗅探与Wireshark进阶分析
  • 使用Python在Word中创建、读取和删除列表 - 详解
  • DeepSeek接入多模态,个人电脑也能飞速生成高清图,确实可以封神了!
  • 目前主要虚拟世界平台在单一实例承载人数和伺服器架构的综合比较分析(从开资料和技术推估):
  • 寄存器(内部访问)
  • WordPress靶场攻略
  • 微服务》》Kubernetes (K8S) 集群配置网络》》Calico
  • deepseek使用记录24——小灵
  • docker、docker-compose常用命令
  • Java 实现排序算法 TopK 问题
  • AcWing 839:模拟堆 ← multiset + unordered_map
  • 4.玩转热图(续:矩阵式网络关系热图、Pivot Table 热图、三维/交互式热图)——Python数据挖掘代码实践
  • 2025年优化算法:人工旅鼠算法(Artificial lemming algorithm,ALA)
  • Devops之Docker:Docker入门
  • Pandas数据分析
  • 深入解析 Service Worker 在 Chrome 扩展中的应用