【剑指offer】【模拟题】66. 构建乘积数组
题目链接:https://leetcode-cn.com/problems/gou-jian-cheng-ji-shu-zu-lcof/
时间复杂度O(n)
空间复杂度O(1)
class Solution {
public:
vector<int> constructArr(const vector<int>& A) {
if(A.empty()) return A;
int n = A.size();
vector<int> B(n);
//先计算B[i] = A[0]~A[i - 1]的乘积
for(int i = 0, p = 1; i < n; i++){
B[i] = p;
p *= A[i];
}
//再计算B[i] = B[i] * A[i + 1]~A[n]的成绩
for(int i = n - 1, p = 1; ~i; i--){
B[i] *= p;
p *= A[i];
}
return B;
}
};
知识的价值不在于占有,而在于使用