思路:
特想暴力ac,但估计时间超时
不能用除法的话,暂时想到用缓存的办法
用两个数组分别记录从左乘到右、从右乘到左
class Solution:
def constructArr(self, a: List[int]) -> List[int]:
left,right=[],[]
res=[]
for i in range(len(a)):
if i==0:
l=a[0]
r=a[-1]
left.append(a[0])
right.append(a[-1])
else:
l=l*a[i]
r=r*a[-1-i]
left.append(l)
right.append(r)
for i in range(len(a)):
if i==0:
res.append(right[-2])
elif i==len(a)-1:
res.append(left[-2])
else:
res.append(left[i-1]*right[len(a)-i-2])
return res