解题思路:
(1)将其分为前后两个部分,前面使用自前而后,后面使用自后而前
class Solution {
public:
vector<int> multiply(const vector<int>& A) {
if(A.size()==0 || A.size()==1) return A;
vector<int> b,c={1},d={1};
int sumc = 1,sumd = 1;
for(int i=0;i<A.size()-1;i++) {
sumc=sumc*A[i];
c.push_back(sumc);
sumd=sumd*A[A.size()-1-i];
d.push_back(sumd);
}
for(int i=0;i<A.size();i++) {
b.push_back(c[i]*d[A.size()-1-i]);
}
return b;
}
};