分别算A[i] 的左侧与右侧;
代码:
vector<int> multiply(const vector<int>& A) {
vector<int> B(A.size());
if(A.size()==0)
return B;
int ret=1;
//计算左侧
for(int i=0;i<A.size();ret*=A[i++]){
B[i]=ret;
}
ret=1;
//计算右侧
for(int i=A.size()-1;i>=0;ret*=A[i--]){
B[i]*=ret;
}
return B;
}