题解 | #构建乘积数组#

构建乘积数组

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

这个思路和计算方法是要学习的内容

全部评论

相关推荐

牛客245670684号:虚拟货币预测正确率百分之99,还要找工作干嘛,不早就财富自由了
点赞 评论 收藏
分享
草稿猫编程:查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务