经典指数          
原因
2398
浏览数
0
收藏数
 

给定一个数组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 个答案

//B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]

//从左到右算 B[i]=A[0]*A[1]*...*A[i-1]

//从右到左算B[i]*=A[i+1]*...*A[n-1]

class Solution {

public:

vector multiply(const vector& A) {

int n=A.size();

vector b(n);

int ret=1;

for(int i=0;i

b[i]=ret;

}

ret=1;

for(int i=n-1;i>=0;ret*=A[i--]){

b[i]*=ret;

}

return b;

}

};

 
切换
撰写答案