题解 | 构建乘积数组

构建乘积数组

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
#法二:节省空间复杂度,直接在数组上进行计算

全部评论

相关推荐

10-22 12:03
山东大学 Java
程序员小白条:26届一般都得有实习,项目可以随便写的,如果不是开源社区的项目,随便包装,技术栈也是一样,所以本质应该找学历厂,多投投央国企和银行,技术要求稍微低一点的,或者国企控股那种,纯互联网一般都得要干活
应届生简历当中,HR最关...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务