当前位置: 首页> 健康> 美食 > 每日一题,力扣leetcode Hot100之238.除自身以外数组的乘积

每日一题,力扣leetcode Hot100之238.除自身以外数组的乘积

时间:2025/7/17 16:06:01来源:https://blog.csdn.net/u013373155/article/details/142001846 浏览次数:0次

乍一看这个题很简单,但是不能用除法,并且在O(N)时间复杂度完成或许有点难度。

考虑到不能用除法,如果我们要计算输出结果位置i的值,我们就要获取这个位置左边的乘积和右边的乘积,那么我新设立两个数组L和R。

对于L来说,由于表达的是位置i左边的数的乘积,那么L[0]=1,因为第一个数字左边没数那么为了不影响乘积初始值就设置为1,那么L[1]=L[0]*nums[0],那么L[i]=L[i-1]*nums[i-1]因为去掉位置i的乘积 就等于上个位置i-1去掉位置的乘积*其本身。

对于R来说,同理,只不过是逆序,注意界定循环的范围。

class Solution:def productExceptSelf(self, nums: List[int]) -> List[int]:length=len(nums)L,R,result=[0]*length,[0]*length,[0]*lengthL[0]=1for i in range(1,length):L[i]=L[i-1]*nums[i-1]R[length-1]=1for i in reversed(range(length-1)):R[i]=R[i+1]*nums[i+1]for i in range(length):result[i]=L[i]*R[i]return result

关键字:每日一题,力扣leetcode Hot100之238.除自身以外数组的乘积

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: