zoukankan      html  css  js  c++  java
  • Array of products

    refer to: https://www.algoexpert.io/questions/Array%20Of%20Products


    Problem Statement

    Sample input

    Analysis

    approach 1: brute force, two full loops to iterate the array, for each current index, calculate the product except the current index value

    code. time complexity: O(N^2).  space complexity: O(N)

    def arrayOfProducts(array):
        # Write your code here.
        product = [1 for i in range(len(array))]
        for i in range(len(array)):
            res = 1
            for j in range(len(array)):
                if i != j:
                    res *= array[j]
            product[i] = res
        return product     

    approach 2: calculate the leftProducts and the rightProducts seperately, then multiple the right and left element of the current index

    code.  time complexity: O(N).  space complexity: O(N)

    def arrayOfProducts(array):
        # Write your code here.
        left = [1 for i in range(len(array))]
        right = [1 for i in range(len(array))]
        res = [1 for i in range(len(array))]
        
        leftProduct = 1
        rightProduct = 1
        for i in range(len(array)):
            left[i] = leftProduct
            leftProduct *= array[i]
            
        for i in reversed(range(len(array))):
            right[i] = rightProduct
            rightProduct *= array[i]
            
        for i in range(len(array)):
            res[i] = right[i] * left[i]
        return res

    approach 3: avoid store the extra leftProducts and rightProducts, only update the products array

    code.  time complexity: O(N).  space complexity: O(N)

    def arrayOfProducts(array):
        # Write your code here.
        product = [1 for i in range(len(array))]
        
        leftProduct = 1
        rightProduct = 1
        
        for i in range(len(array)):
            product[i] = leftProduct
            leftProduct *= array[i]
            
        for i in reversed(range(len(array))):
            product[i] *= rightProduct
            rightProduct *= array[i]
            
        return product
  • 相关阅读:
    Redis 数据类型
    python的图形化界面
    python文件操作
    持续集成(Continuous Integration)
    MySQL理解索引、添加索引的原则
    Perl中的字符串操作函数
    PHP常用函数大全
    Javascript 中 Array的 sort()和 compare()方法
    使用Composer管理PHP依赖关系
    一致性 Hash 算法
  • 原文地址:https://www.cnblogs.com/LilyLiya/p/15025857.html
Copyright © 2011-2022 走看看