看代码注释
class Solution:
def productExceptSelf(self, nums: List[int]) -> List[int]:
# 看到这个问题,第一眼反应是2个 for 循环解决问题,但是:1、请不要使用除法;2、在 O(n) 时间复杂度内完成此题。emmmmm——小尧
n=len(nums)
leftPro,rightPro,output = [1]*n, [1]*n, [1]*n
for i in range(0,n-1):
print(i)
leftPro[i+1]=nums[i]*leftPro[i] # 非常简单,我们可以遍历nums,在遍历的过程中将对应元素累乘,这样我们就得到了对应元素左边所有元素的乘积。
rightPro[n-i-2]=nums[n-i-1]*rightPro[n-i-1] # 然后我们反向遍历nums,做相同操作即可
for i in range(0,n):
output[i]=leftPro[i]*rightPro[i] # 再将两个结果相乘即可。
return output