题解 | 构建乘积数组
构建乘积数组
https://www.nowcoder.com/practice/94a4d381a68b47b7a8bed86f2975db46
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param A int整型一维数组
# @return int整型一维数组
#
class Solution:
def multiply(self , A: List[int]) -> List[int]:
# write code here
n = len(A)
'''l, r, B = [1]*n, [1]*n, [0]*n
for i in range(1,n):
l[i] = l[i-1]*A[i-1]
for i in range(n-2,-1,-1):
r[i] = r[i+1]*A[i+1]
for i in range(n):
B[i] = l[i]*r[i]
return B'''
#法一:利用左右数组,分别计算左乘积数组、右乘积数组,然后再计算B[i]
B = [1]*n
for i in range(1,n):
B[i] = B[i-1]*A[i-1]
temp = 1
for i in range(n-2,-1,-1):
temp *= A[i+1]
B[i] *= temp
return B
#法二:节省空间复杂度,直接在数组上进行计算
SHEIN希音公司福利 261人发布
查看28道真题和解析