https://leetcode.com/problems/product-of-array-except-self/description/
两个vector,一个记录当前位置前面所有的乘积,一个记录之后所有的成绩,然后把两个vector当前位置的值乘起来就可以了。
class Solution {
public:
vector<int> productExceptSelf(vector<int>& nums) {
int size = nums.size();
vector<int> fwd(size,1), bwd(size,1), res(size);
for(int i=0; i<size-1; i++){
fwd[i+1] = fwd[i]*nums[i];
}
for(int i=size-1; i>0; i--){
bwd[i-1] = bwd[i]*nums[i];
}
for(int i=0; i<size; i++){
res[i] = fwd[i]*bwd[i];
}
return res;
}
};