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
  • 相关阅读:
    PHP木马免杀的一些总结
    regsvr32 bypass windows defender 新思路
    要点4:C的文件操作
    【Go语言探险】线上奇怪日志问题的排查
    Eclipse部署虚拟项目目录
    osgEarth使用笔记4——加载矢量数据
    three.js中的矩阵计算
    GDAL数据集写入空间坐标参考
    matlab 基础
    nginx 配置文件解读
  • 原文地址:https://www.cnblogs.com/LilyLiya/p/15025857.html
Copyright © 2011-2022 走看看