【题目】
注意:
请不要使用除法,且在 O(n) 时间复杂度内完成此题。
【代码】

class Solution:
def productExceptSelf(self, nums: List[int]) -> List[int]:
left,right,ans=[],[],[]
pre=1
for item in nums:
left.append(pre*item)
pre=left[-1]
pre=1
for item in nums[::-1]:
right.append(pre*item)
pre=right[-1]
right=right[::-1]
for i in range(len(left)):
if i==0:
ans.append(right[i+1])
elif i==len(left)-1:
ans.append(left[i-1])
else:
ans.append(left[i-1]*right[i+1])
return ans
【进阶版】
进阶:你可以在 O(1) 的额外空间复杂度内完成这个题目吗?( 出于对空间复杂度分析的目的,输出数组不被视为额外空间。)
后续补充
该博客讨论了一个算法问题,要求在不允许使用除法且时间复杂度为O(n)的条件下,计算数组中所有元素的乘积。提供的解决方案通过两次遍历数组分别构建左侧和右侧的乘积序列,然后结合这两个序列得到最终答案。进阶挑战是进一步降低额外空间复杂度到O(1)。
415

被折叠的 条评论
为什么被折叠?



