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

面试150 除自身以外数组的乘积

在这里插入图片描述

思路

首先很容易想到暴力法:创建一个长度为n的结果数组,对于每个数以此下标进行划分,分别计算左右两边的乘积然后进行相乘。但是这个会超时!
因此需要优化,需要用前缀法进行优化。我们分别通过left去维护数组左侧的乘积去更新结果数组,然后在通过right去维护右侧的值的过程中,更新res并最后返回。

from typing import Listclass Solution:def productExceptSelf(self, nums: List[int]) -> List[int]:n = len(nums)                # 数组长度res = [1] * n                # 初始化结果数组,每个位置设为1(乘法单位)# 第一步:从左到右,计算每个位置左边所有数的乘积left = 1                     # 初始左乘积为1for i in range(n):res[i] = left            # 把左边的乘积放入结果中left *= nums[i]         # 更新左乘积,乘上当前nums[i]# 第二步:从右到左,再乘上右边所有数的乘积right = 1                    # 初始右乘积为1for i in range(n - 1, -1, -1):  # 从右向左遍历res[i] *= right          # 把右边的乘积乘到结果上right *= nums[i]         # 更新右乘积,乘上当前nums[i]return res                   # 返回最终结果

相关文章:

  • 今日推荐:data-engineer-handbook
  • 包教包会,ES6类class的基本入门
  • 本地编译LibreHardwareMonitor
  • 仕么是Transformer以及工作原理和架构
  • 人工智能、机器人最容易取哪些体力劳动和脑力劳动
  • MySQL学习(1)——基础库操作
  • C++智能指针编程实例
  • Redis-CPP 5大类型操作
  • C#Halcon从零开发_Day14_AOI缺陷检测策略1_Bolb分析+特征分析_饼干破损检测
  • Kotlin 中为什么没有静态变量和静态方法—不用static?
  • 鸿蒙 Column 组件指南:垂直布局核心技术与场景化实践
  • Pandas 数据清洗
  • 端侧调用云数据库获取业务数据
  • 【Datawhale组队学习202506】YOLO-Master task03 IOU总结
  • 从iPSC到成熟细胞,纳米生物材料如何当“向导”?
  • 【大模型微调】6.模型微调实测与格式转换导出
  • 核心概念解析:AI、数据挖掘、机器学习与深度学习的关系
  • Linux(3)
  • 数学:初步了解什么是“向量”
  • HarmonyOS NEXT端侧工程调用云侧能力实现业务功能
  • 温州市手机网站制作多少钱/他达拉非的副作用和危害
  • 做相册本哪个网站好用吗/成都网络营销
  • 响应式潍坊网站建设/培训心得总结
  • 网站制作包括哪些/seo域名如何优化
  • 网站建设兼职合同/北京企业推广
  • 网站价钱/ui设计公司