首页 > 其他分享 > (*)LeetCode 热题 100 之 238. 除自身以外数组的乘积

(*)LeetCode 热题 100 之 238. 除自身以外数组的乘积

时间:2023-08-02 20:36:35浏览次数:36  
标签:乘积 nums res 复杂度 元素 238 数组 100 热题

题目

给你一个整数数组 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 <= 10^5
-30 <= nums[i] <= 30
保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内

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

思路

前缀乘积*后缀乘积

代码

class Solution:
    def productExceptSelf(self, nums: List[int]) -> List[int]:
        n = len(nums)
        res = [1]*n
        k = 1
        for i in range(0,n):
            res[i] = k
            k *= nums[i] 
        k = 1
        for i in range(n-1,-1,-1):
            res[i]*=k
            k *= nums[i]
        return res

标签:乘积,nums,res,复杂度,元素,238,数组,100,热题
From: https://www.cnblogs.com/anamzingclown/p/17601664.html

相关文章

  • LeetCode 热题 100 之 189. 轮转数组
    题目给定一个整数数组nums,将数组中的元素向右轮转k个位置,其中k是非负数。示例1:输入:nums=[1,2,3,4,5,6,7],k=3输出:[5,6,7,1,2,3,4]解释:向右轮转1步:[7,1,2,3,4,5,6]向右轮转2步:[6,7,1,2,3,4,5]向右轮转3步:[5,6,7,1,2,3,4]示例2:输入:nums=......
  • 1-100所有的素数个数
    素数:只能被1跟它本身整除的数 intsum=0; for(inti=2;i<100;i++){ booleanflag=true; for(intj=2;j<i/2;j++){ if(i%j==0){ flag=false; break; } } if(flag){ System.out.println("1-100为素数的值为:"+i); sum=sum+1; } } System......
  • 不忘初心 Windows11 Insider Preview 25915.1000 Canary预览版 无更新 纯净精简 2023.
    此版不能更新补丁,并开启按流量计费,此版保留Hyper和linux,让人期待的任务栏图标从不合并功能此版已经回归,母版来自UUPWindows11InsiderPreview25915.1000Canary频道预览版,本版本自动跳过硬件检测,优化后台进程和服务,精简一些日常不常用的组件,速度和性能比原版更胜一筹,为了保证稳......
  • R语言代做编程辅导STA305/1004 Homework 2(附答案)
    全文链接:https://tecdat.cn/?p=33341TheNHEFSsurveywasdesignedtoinvestigatetherelationshipsbetweenclinical,nutritional,andbehaviouralfactorsassessedinthefirstNationalHealthandNutritionExaminationSurveyNHANESIandsubsequentmorbidity,......
  • mysql 查询限制1000行
    如何实现MySQL查询限制1000行概述在MySQL数据库中,可以使用LIMIT关键字来限制查询结果的行数。这对于大型数据集的查询是非常有用的,可以避免查询结果过于庞大,提高查询效率。本文将详细介绍如何在MySQL中实现查询结果限制为1000行。步骤下面是实现MySQL查询限制1000行的步骤:......
  • c语言之判断100-200内的素数
    intmain()//判断100-200内的素数{ //判断素数,即只能被1和他自身整除 //1.试除法 //假设13为素数,就拿2-12的数来试着整除,若可以那就不是素数,若不可以就是素数 //由此可知:如果2到i-1的数可以被i给整除,那么i就不是素数 inti=0; intcount=0; for(i=100;i<=200;i+......
  • 撞了100次南墙才明白的道理
    撞了100次南墙才明白的道理:1、太正经的人,发不了大财。2、你越没本事,别人越欺负你。3、社会资源是有限的,好的资源需要靠抢。4、除了父母,没有人愿意无偿包容你。5、没有实力,你认识谁都没有用。6、人们只会看重你的成果,而不是你的努力。7、在竞争激烈的世界里,弱者只会被淘汰。......
  • LeetCode 热题 100 之 56. 合并区间
    题目以数组intervals表示若干个区间的集合,其中单个区间为intervals[i]=[starti,endi]。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。示例1:输入:intervals=[[1,3],[2,6],[8,10],[15,18]]输出:[[1,6],[8,10],[15,18]]解......
  • NETSDK1004:找不到资产文件
    错误信息严重性代码说明项目文件行禁止显示状态错误NETSDK1004找不到资产文件“C:\BaseContract\obj\project.assets.json”。运行NuGet包还原以生成此文件。BaseContractC:\ProgramFiles\dotnet\sdk\7.0.306\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDe......
  • Java 取整可以被100整除
    Java取整与被100整除的科普在Java中,我们常常需要对数字进行取整操作。而有时候,我们需要确保一个数字是100的倍数。本文将介绍Java中取整的方法以及如何确保一个数字可以被100整除。取整方法在Java中,有多种取整的方法可以使用。下面我们将介绍四种常用的取整方法。向下取整(Fl......