题解
- 区间线性问题,直接考虑前后缀即可
- 分别计算前缀后缀乘积和,即可
- 线性复杂度
AC-Code
class Solution {
public:
vector<int> multiply(const vector<int>& A) {
vector<int> B(A.size(), 1);
for (int i = 1; i < A.size(); ++i)
B[i] = B[i - 1] * A[i - 1];
int tmp = 1;
for (int j = A.size() - 2; j >= 0; --j) {
tmp *= A[j + 1];
B[j] *= tmp;
}
return B;
}
};