题目:
给定一个数组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~i累乘 第二个循环是i+1~n
class Solution {
public:
vector<int> multiply(
const vector<int>& A) {
int len = A.size();
vector<int> s;
if (len ==
0)
return s;
s.push_back(
1);
for (
int i =
0; i<len -
1; ++i)
{
s.push_back(s.back()*A[i]);
}
int tmp =
1;
for (
int i = len -
1; i >=
0; --i)
{
s[i] *= tmp;
tmp *= A[i];
}
return s;
}
};