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

Java实现 LeetCode 238 除自身以外数组的乘积 238. 除自身以外数组的乘积 给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。 示例: 输入: [1,2,3,4] 输出: [24,12,8,6] 说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题。 进阶: 你可以在常数空间复杂度内完成这个题目吗?( 出于... 阅读详情

在这里插入图片描述

我的解法(没头绪,参考AI的思路)

好奇怪啊,这个题目,没什么思路
题目的主要难点是,如何通过这个线性运算得出所有的乘积和,同时不适用除法。

问了下AI,这种题目我可以从什么方向入手,他提示我可以使用前缀积和后缀积的方法来做这道题
就比如说1,2,3,4
那么其前缀积是1,1,2,6,这个是第一轮中每个元素不包含自己左边所有元素的乘积
之后我们在进行后缀积遍历24,12,8,6

这样我们就得到了这个输出,太妙了

代码如下:

public int[] productExceptSelf(int[] nums) {
    int len = nums.length;
    int[] answer = new int[len];
    answer[0]=1;
    //计算前缀积
    int ans = 1;
    for(int i = 1;i<len;i++){
        ans = ans*nums[i-1];
        answer[i]=ans;
    }
    //计算后缀积
    ans =1;
    for(int i=len-2;i>=0;i--){
        ans = ans*nums[i+1];
        answer[i]=answer[i]*ans;
    }
    return answer;
}

灵神的思路

灵神的思路和AI提示的思路是一样的,都是利用前缀积和后缀积进行计算的。
区别在于他使用了两个数组来分别存放前缀积和后缀积,我是直接一个数组就结束了

class Solution {
    public int[] productExceptSelf(int[] nums) {
        int n = nums.length;
        int[] pre = new int[n];
        pre[0] = 1;
        for (int i = 1; i < n; i++) {
            pre[i] = pre[i - 1] * nums[i - 1];
        }

        int[] suf = new int[n];
        suf[n - 1] = 1;
        for (int i = n - 2; i >= 0; i--) {
            suf[i] = suf[i + 1] * nums[i + 1];
        }

        int[] ans = new int[n];
        for (int i = 0; i < n; i++) {
            ans[i] = pre[i] * suf[i];
        }
        return ans;
    }
}

作者:灵茶山艾府
链接:https://leetcode.cn/problems/product-of-array-except-self/solutions/2783788/qian-hou-zhui-fen-jie-fu-ti-dan-pythonja-86r1/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
从购物清单到数组乘积:探索除自身外数组的乘积问题|LeetCode 238 除自身以外数组的乘积 点此看全部题解更多干货,请关注公众号【忍者算法】,回复【刷题清单】获取完整题解目录~ 阅读详情

相关推荐

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

只用乘法计算索引 i 处除了 nums[i] 的所有数的乘积

明朗晨光的专栏 976

leetcode238:除自身以外数组的乘积

使用不同的方法解决leetcode第238题

weixin_69380220的博客 2047

MATLAB实战:蓝牙GFSK调制解调全流程解析(附误码率优化技巧)

本文深入解析了蓝牙GFSK调制解调在MATLAB中的全流程实现,包括高斯滤波器设计、调制解调技术及误码率优化技巧。通过实战案例和代码示例,帮助工程师提升蓝牙通信系统的性能表现,特别是在降低误码率方面的有效方法。

weixin_29046035的博客 277

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

本题要求在不使用除法的情况下,计算数组中除自身以外其余各元素的乘积。可以通过分别计算每个元素的前缀乘积和后缀乘积,然后将它们相乘得到最终结果。之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。238.除自身以外数组的乘积。之外其余各元素的乘积。时间复杂度内完成此题。题目数据 保证 数组。请不要使用除法,且在。

qq_40844444的博客 1108

实战|验证码突破思路

漏洞成因:由于逻辑设计缺陷,可绕过验证,比如直接删除COOKIE或验证码参数可绕过、当验证不通过清空session时,验证码参数值为空时绕过等。测试方法:抓包,删除验证码字段,查看是否可以成功发送抓包,正常流程下,记录验证码后的数据包,替换目标包中内容,直接发送,查看是否可以直接绕过验证码案例:Step1.输入正确账户信息和错误验证码,登录时抓包Step2.删除COOKIEStep3.客户端登陆成功。

weixin_46239998的博客 8100

CESM2 实验笔记

文章目录1. 重新启动1.1 关于重启文件2. RUN_TYPE 初始化运行方式startupbranchhybrid3. branch 或者 hybrid运行的示例4. 其他声明5. 关于RESUBMIT 1. 重新启动 参考: https://bb.cgd.ucar.edu/cesm/threads/how-to-restart-cesm2-1-3-fhist-from-a-backup.5245/#post-36275 适用情况:模型运行因时间不足或其它原因中断,需要继续运行 方法1:将CONTIN

qq_38607066的博客 1万+

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

力扣-238.除自身以外数组的乘积,解题思路分享。

weixin_67851619的博客 1101

【机器人】线性方程最小二乘解法对机械臂DH参数进行标定

1.前言 看了一篇文章,觉得里面的DH参数标定法讲的很清晰,便使用Matlab复现了一下,效果还可以,特写此文记录。 2.原理 2.1.误差最佳值的最小二乘计算 有研究结果表明:几乎95%的机器人位置误差都是由机器人内部运动学的不准确描述引起的,所以对DH模型参数进行标定是很有必要的。 DH参数物理含义:选自《机器人学、机器视觉与控制-Matlab基础》 当DH参数确定后,我们...

要恰饭得嘛 1万+

LeetCode第238题_除自身以外数组的乘积

LeetCode第238题要求计算数组中每个元素除自身外的乘积。题目要求不使用除法且在O(n)时间内完成。 解题方法: 左右乘积列表法:分别计算每个元素左侧和右侧的乘积,然后相乘得到结果,时间复杂度O(n),空间复杂度O(n)。 空间优化法:在输出数组中先存储左侧乘积,再用变量记录右侧乘积并直接更新结果,时间复杂度O(n),空间复杂度O(1)(不包括输出数组)。 关键点: 避免使用除法 两次遍历数组(左→右和右→左) 空间优化方法仅需一个额外变量 两种方法在时间复杂度上相同,但优化后的方法显著降低了

qq_40263592的博客 854

三极管特性曲线看不懂?手把手教你用Multisim仿真分析放大电路频率响应

本文针对模拟电路初学者,详细讲解如何利用Multisim软件进行电路仿真,将抽象的三极管特性曲线与放大电路频率响应分析变得直观可视。通过手把手教学,指导读者从导入三极管SPICE模型、仿真输出特性曲线,到分析动态工作点,最终使用波特图仪深入分析频率响应并进行补偿设计,有效帮助理解电路原理并指导实践调试。

weixin_29230059的博客 122

机器人行业面试全攻略:从0到1拿下心仪Offer,看这一篇就够了

【摘要】2026年机器人行业迎来爆发期,全球市场规模超800亿美元,人才争夺激烈。本文针对机器人行业面试提供系统攻略:首先需明确岗位方向、打造差异化标签并了解目标公司;技术面试高频考点包括ROS框架、SLAM导航、运动控制、深度学习和嵌入式系统;项目介绍需采用STAR+R结构并量化成果;行为面试需注意协作能力与职业规划。文章还总结了简历堆砌、单向输出等五大常见误区,强调长期积累与精准准备的重要性,助力求职者把握行业窗口期机会。

郑伟强dev的专栏 190

力扣238题详解:除自身以外数组的乘积的多种解法与模拟面试问答

本文详细解读了力扣第238题“除自身以外数组的乘积”,通过左右乘积数组法高效地计算数组中每个元素的除自身以外的乘积,并提供了详细的解释和模拟面试问答。希望读者通过本文的学习,能够在力扣刷题的过程中更加得心应手。

10年数据\经营分析经验,现任大厂数据分析负责人 1604

《PLECS仿真与实战:从建模到高端应用》-专栏文件目录

《PLECS仿真与实战:从建模到高端应用》是一本系统介绍PLECS电力电子仿真软件的实用指南。全书共10章,首先介绍软件安装与基础操作,包括RC电路仿真等入门内容;随后深入讲解各类电力电子电路的建模与仿真,涵盖整流、交交变换、直流变换、逆变等电路;最后探讨PWM控制建模和直流调速系统等高端应用。书中配有丰富的示例程序和波形分析方法,附录还包含电力电子器件、代码生成等实用资料。该书适合电力电子领域工程师和学生系统学习电路仿真技术。

540

leetcode刷题记录(五十九)——238. 除自身以外数组的乘积

238. 除自身以外数组的乘积 - 力扣(LeetCode)238. 除自身以外数组的乘积 - 给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。请 不要使用除法,且在 O(n) 时间复杂度内完成此题。

weixin_45994787的博客 997

TenserRt平台SMOKE 3D目标检测部署完整教程:从理论到实践

本教程详细介绍了在RK3588平台上部署SMOKE 3D目标检测模型的完整流程。SMOKE是一种创新的单阶段单目3D检测方法,通过关键点估计直接预测3D目标信息,有效解决了深度信息缺失等挑战。文章从理论基础出发,解析了SMOKE的核心算法和网络架构,包括DLA-34主干网络和关键点中心化策略。同时提供了详细的Docker环境配置、模型导出到ONNX格式的实践指南,以及TensorRT引擎构建和性能优化的关键技术要点。该教程为开发者在嵌入式平台上实现高效3D目标检测提供了完整的技术参考。

LXY_LOVE36的博客 371

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

[238]、除自身以外数组的乘积

题目 题目链接 给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。 示例1: 输入: [1,2,3,4] 输出: [24,12,8,6] 提示:题目数据保证数组之中任意元素的全部前缀元素和后缀(甚至是整个数组)的乘积都在 32 位整数范围内。 说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题。 进阶: 你可以在常数空间复杂度内完成这个题目吗?( 出于对空间复杂度

qq_28749335的博客 162

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

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

给你一个整数数组nums,返回 数组answer,其中answer[i]等于nums中除nums[i]之外其余各元素的乘积。题目数据数组nums之中任意元素的全部前缀元素和后缀的乘积都在整数范围内。请且在O(n)时间复杂度内完成此题。nums =[1,2,3,4]nums你可以在O(1)的额外空间复杂度内完成这个题目吗?( 出于对空间复杂度分析的目的,输出数组额外空间。

m0_74197695的博客 954

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

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

不能直接用向量乘以整数,需要对向量的每个元素进行操作。应该是将当前结果乘以左侧乘积,然后更新左侧乘积。第二次遍历(从右到左):计算每个位置右侧所有元素的乘积,并与之前结果相乘。右侧遍历的逻辑也有问题,不应该直接赋值 right = nums[i]第一次遍历(从左到右):计算每个位置左侧所有元素的乘积。创建结果数组:初始化为全1,因为乘法的单位元是1。最终 result = [24,12,8,6]此时 result = [1,1,2,6]

2402_83315537的博客 964

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

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

WangSir 1083

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

Leetcode 238 除自身以外数组的乘积 给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。 示例: 输入: [1,2,3,4] 输出: [24,12,8,6] 说明: 请不要使用除法,且在 O(n) 时间复杂度内完成此题。 详解:这道题可以使用动态规划来解决,le...

qq_30163473的博客 149

LeetCode 238. 除自身以外数组的乘积(Java版)

题目 238. 除自身以外数组的乘积 题解 构造两个数组left和right left[i] = nums[0] * nums[1] *…… * nums[i-2] * nums[i-1] right[i] = nums[i + 1] * nums[i + 2] *…… * nums[len-2] * nums[len-1] 所以就有以下的公式: left[i] = left[i - 1]...

RAYFUXK的专栏 300

238除自身以外数组的乘积

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

qq_74845484的博客 497

Leetcode——238除自身以外数组的乘积

238.除自身以外数组的乘积 给定长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。 示例: 输入:[1,2,3,4] 输出:[24,12,8,6] 说明:请不要使用除法,且在O(n)时间复杂度内完成此题。 【思路】 根据题意,在O(n)时间复杂度内,于是此时想到首先遍历一...

小张的记录 467

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

题目描述: 给定长度为n的整数数组nums,其中n > 1,返回输出数组output,其中 output[i]等于nums中除nums[i]之外其余各元素的乘积。 示例: 输入: [1,2,3,4] 输出: [24,12,8,6] 说明: 请不要使用除法,且在O(n) 时间复杂度内完成此题。 进阶: 你可以在常数空间复杂度内完成这个题目吗?( 出于对空间复杂度...

Rik_Liu的博客 230

LeetCode 238题「除自身以外数组的乘积」

本题通过两次遍历数组分别计算左右乘积,巧妙地在不使用除法的情况下实现了OnO(n)On的时间复杂度。空间优化版本进一步将空间复杂度降至O1O(1)O1,是该问题的最优解法。

weixin_45524582的博客 550

C语言题解——除自身以外数组的乘积(力扣 第238题)

这是力扣题库中的一个中等难题,说是存在一个整型数组,求出各元素位上除此数外其他元素的乘积,比如存在数组[1,2,3,4],按照题目应该该输出[24,12,8,6],我们的解题思想为:求出各元素的左积和右积(当然不包含自己),然后将左积与右积相乘,就可以得到目标积数,拿上面的例子来说,下标0的左积为1(默认数组外为1),右积为24,相乘得到目标积24,其他元素也是依次类推。下面来看看具体讲解吧:

北 海的博客 1778
上一篇: leecode189 轮转数组
下一篇: leecode73 矩阵置零
TranquilGlow
博客等级 码龄5年 132粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值