题解 | #构建乘积数组#
构建乘积数组
https://www.nowcoder.com/practice/94a4d381a68b47b7a8bed86f2975db46
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param A int整型一维数组
# @return int整型一维数组
#
class Solution:
def multiply(self , A: List[int]) -> List[int]:
# write code here
"""思路1: 双向遍历
1.初始化数组b,第一个元素位1
2.从左到右遍历数组A,将数组b的前一个数与数组a的前一个数相乘得到下三角uuzub的当前数
"""
# 初始化b
B = [ 1 for i in range(len(A))]
# 先乘左边,从左到右
for i in range(1, len(A)):
# 每多一位由B左边的元素多呈一个前面A的元素
B[i] = B[i - 1] * A[i-1]
temp = 1
# 再乘右边,从右到左
for i in reversed(range(len(A))):
# temp 为右边的累乘
B[i] *= temp
temp *= A[i]
return B
这个思路和计算方法是要学习的内容