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

【Swift】LeetCode 238.除自身以外数组的乘积

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

在这里插入图片描述

题目描述

请添加图片描述

思路 and Swift 题解

之前在解这道题的过程中,我一直建立两个数组,分别存储当前遍历位置的前缀积和后缀积,但其实这道题目不需要这么复杂,只需要经过正向和反向的两次遍历,使用一个变量来存储前缀积和后缀积,即可解决这道题目。

首先我们需要先建立一个存储答案的数组ans,它的长度等于输入nums的长度,所有元素初始化为1

之后,我们首先进行正向遍历,建立一个初始值为1的变量left来存储前缀积。每次遍历令ans[i] *= left; left *= nums[i],在left更新之前,它存储的值显然就是0 -> i - 1这个区间上的积。

再然后,我们进行反向遍历,建立一个初始值为1right,令ans[i] *= right; right *= nums[i]

遍历完成后,返回答案即可。

完整的 Swift 题解:

class Solution {func productExceptSelf(_ nums: [Int]) -> [Int] {var ans = Array(repeating: 1, count: nums.count)var left = 1var right = 1for i in 0..<nums.count {ans[i] *= leftleft *= nums[i]}for i in (0..<nums.count).reversed() {ans[i] *= rightright *= nums[i]}return ans}
}
http://www.dtcms.com/a/531995.html

相关文章:

  • GitLab
  • GitHub等平台形成的开源文化正在重塑继任者
  • 【区块链学习笔记】17:以太坊中的GHOST协议
  • 【SpringAI】10.结构化输出
  • 递归经典例题
  • SpringMVC入门:配置、映射与参数处理​
  • 前端笔试复盘 | 知识点总结
  • 春招准备之Java基础篇
  • 有哪几个网站可以做贸易网站备案要多少天
  • 【编程语言】Java基础语法回顾,大学期末考试速通版(选择填空、程序、实践)
  • Redis(85)Redis缓存与Memcached缓存有何区别?
  • 【iOS】自动引用计数(一)
  • 有什么免费的网站wordpress 采集器
  • 网站建设创新成果网站营销如何做
  • 设计模式-享元模式(Flyweight)
  • TMS320C6000 VLIW架构并行编程实战:加速AI边缘计算推理性能
  • 算法学习记录08——并归的应用(LeetCode[315])
  • 【机器人学中的状态估计】3.6.6 习题证明
  • Kafka生产者详解(下):数据去重(幂等性)与数据有序
  • Data Ingestion: Architectural Patterns
  • 网站建设心得体会范文郑州男科医院排行哪家最好
  • 【datawhale秋训营】动手开发RAG系统(应急安全方向) TASK02
  • 怎么搜索整个网站内容网站怎么做成app
  • Python3 集合
  • 九冶建设有限公司官方网站sem优化怎么做
  • MATLAB基于灰靶决策模型的高校信息化设备供应商选择研究
  • java类与对象
  • AI 应用层革命(一)——软件的终结与智能体的崛起
  • Linux Crontab命令详解:轻松设置周期性定时任务
  • beef-xss网页无法访问