• 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
  • 相关阅读:
    jq validate的用法
    position:fixed定位
    postgresql-日志表
    postgresql-查看各个数据库大小
    postgresql-清空shared_buffers
    postgresql-int,bigint,numeric效率测试
    postgresql-查看表大小
    mongodb postgresql mysql jsonb对比
    postgresql和redis
    postgresql-死锁
  • 原文地址:https://www.cnblogs.com/LilyLiya/p/15025857.html
Copyright © 2020-2023  润新知