构建乘积数组

来源:互联网 发布:淘宝客服应聘简历 编辑:程序博客网 时间:2024/06/05 19:15

题目描述

给定一个数组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> ans(a.size());        int sum = 1;        for (int i = 0; i < a.size(); ++i) {//正向乘一遍将前边都乘上            ans[i] = sum;            sum *= a[i];        }        sum = 1;        for (int i = a.size() - 1; i >= 0; --i) {//逆向乘一遍将后边都乘上            ans[i] *= sum;            sum *= a[i];        }        return ans;    }};




原创粉丝点击