构建乘积数组

原文地址:https://www.jianshu.com/p/ec698efef7fa

时间限制:1秒 空间限制:32768K

题目描述

给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。

我的代码

class Solution {
public:
    vector<int> multiply(const vector<int>& A) {
        vector<int> res;
        int siz=A.size();
        if(siz<1)
            return res;
        vector<int> A1(siz,1);
        vector<int> A2(siz,1);
        for(int i=1;i<siz;i++){
            A1[i]=A1[i-1]*A[i-1];
            A2[siz-i-1]=A2[siz-i]*A[siz-i];
        }
        for(int i=0;i<siz;i++)
            res.push_back(A1[i]*A2[i]);
        return res;
    }
};

运行时间:4ms
占用内存:472k

原文地址:https://www.cnblogs.com/cherrychenlee/p/10824812.html