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

腾讯云学生机做网站互联网营销师报名官网

腾讯云学生机做网站,互联网营销师报名官网,上海网站建设费用多少,渠道网关LeetCode 热题 100 | 238. 除自身以外数组的乘积 大家好,今天我们来解决一道经典的算法问题——除自身以外数组的乘积。这道题在 LeetCode 上被标记为中等难度,要求在不使用除法的情况下,计算数组中每个元素的乘积,其中每个元素的…

LeetCode 热题 100 | 238. 除自身以外数组的乘积

大家好,今天我们来解决一道经典的算法问题——除自身以外数组的乘积。这道题在 LeetCode 上被标记为中等难度,要求在不使用除法的情况下,计算数组中每个元素的乘积,其中每个元素的值是数组中除自身以外其余各元素的乘积。


问题描述

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

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

示例 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 <= 10^5
  • -30 <= nums[i] <= 30
  • 输入保证数组 answer[i] 在 32 位整数范围内

解题思路

核心思想
  1. 前缀和后缀乘积

    • 使用两个数组 leftright 分别存储每个位置的前缀乘积和后缀乘积。
    • left[i] 表示从数组开头到位置 i-1 的所有元素的乘积。
    • right[i] 表示从位置 i+1 到数组末尾的所有元素的乘积。
    • 最终结果 answer[i]left[i] * right[i]
  2. 优化空间复杂度

    • 可以直接在结果数组 answer 中计算前缀乘积,然后从后向前计算后缀乘积,从而避免使用额外的数组。

Python代码实现

class Solution:def productExceptSelf(self, nums: List[int]) -> List[int]:n = len(nums)answer = [1] * n# 计算前缀乘积left_product = 1for i in range(n):answer[i] = left_productleft_product *= nums[i]# 计算后缀乘积并更新结果right_product = 1for i in range(n - 1, -1, -1):answer[i] *= right_productright_product *= nums[i]return answer

代码解析

  1. 初始化

    • answer 数组初始化为长度为 n 的列表,所有值初始化为 1。
  2. 计算前缀乘积

    • 使用变量 left_product 记录当前元素之前的乘积。
    • 遍历数组,更新 answer[i]left_product,然后更新 left_product
  3. 计算后缀乘积并更新结果

    • 使用变量 right_product 记录当前元素之后的乘积。
    • 从后向前遍历数组,更新 answer[i]answer[i] * right_product,然后更新 right_product
  4. 返回结果

    • 最终结果存储在 answer 中。

复杂度分析

  • 时间复杂度:O(n),其中 n 是数组 nums 的长度。只需要两次遍历数组。
  • 空间复杂度:O(1),直接在结果数组 answer 中计算,不使用额外的数组。

示例运行

示例 1
输入: nums = [1,2,3,4]
输出: [24,12,8,6]
示例 2
输入: nums = [-1,1,0,-3,3]
输出: [0,0,9,0,0]

总结

通过前缀和后缀乘积的方法,我们可以高效地解决除自身以外数组的乘积问题。这种方法在 O(n) 时间复杂度内完成,并且只使用了常数级别的额外空间。希望这篇题解对大家有所帮助,如果有任何问题,欢迎在评论区留言讨论!

关注我,获取更多算法题解和编程技巧!

http://www.dtcms.com/wzjs/60017.html

相关文章:

  • 做宣传网站需要多少钱个人seo怎么赚钱
  • 乐东黎族自治县住房建设局网站一个好的产品怎么推广
  • 网站建设标语网站排名优化化快排优化
  • 网站制作背景百度热搜电视剧
  • wordpress文章复制粘贴图片保存重庆高端seo
  • 好网站求推荐35个成功的市场营销策划案例
  • 天河建设网站公司排名模板免费网站建设
  • 保定专业网站建设开发公司网络营销论文3000字
  • 网站首页模板设计图seo 培训教程
  • 做条形码哪个网站比较好引流推广广告怎么写
  • 网站顶部素材苏州百度 seo
  • 怎么知道网站是什么开源做的微信朋友圈广告
  • 网站做淘宝客收入咋样网络营销推广工具有哪些?
  • 网站建站助手知识搜索引擎
  • html5 手机网站 图标南宁网络优化seo费用
  • 响应式网站难做网站seo入门基础教程书籍
  • 拟定一个物流网站建设方案企业网络推广最简单方法
  • 做网站的要到处跑吗seo系统推广
  • 织梦仿商城网站seo外链推广工具
  • 小鱼儿网站做啥用的站长收录平台
  • 在线网站优化公司网络舆情优化公司
  • wordpress页面全屏的插件优化网站排名需要多少钱
  • 法治建设优秀网站关键词优化的策略
  • 宁波制作手机网站企业管理8大系统
  • 公众号开发者授权找索引擎seo
  • 做免费网站怎么赚钱的学历提升哪个教育机构好一些
  • 关于政府网站的建设网络平台的推广方法
  • 商务网站建设项目的技术可行性关键词推广哪家好
  • 公司网站模板内容aso优化师
  • 东北亚科技园里有做网站的吗网站怎么优化排名