面试题52 构建乘积数组

题目描述

给定一个数组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]。不能使用除法。
 1 class Solution {
 2 public:
 3     vector<int> multiply(const vector<int>& A) {
 4      
 5         int n=A.size();
 6         vector<int> b(n);
 7         int ret=1;
 8         for(int i=0;i<n;ret*=A[i++]){
 9             b[i]=ret;
10         }
11         ret=1;
12         for(int i=n-1;i>=0;ret*=A[i--]){
13             b[i]*=ret;
14         }
15         return b;
16     }
17 };

 

posted @ 2016-04-07 17:29  早杰  阅读(141)  评论(0编辑  收藏  举报