前缀 乘以 后缀
prefix 对应的下标 是包括本身的前缀积
postfix 对应的下标 是包括本身的后缀积
这里就不定义多定义两个数组
直接在需要返回的数组上进行操作
class Solution {
public:
vector<int> productExceptSelf(vector<int>& nums) {
vector<int> res(nums.size());
int prefix = 1;
res[0] = 1;
for(int i = 1; i < nums.size(); i++)
{
prefix *= nums[i - 1]; // 先计算前缀积
res[i] = prefix;
}
int next = 1;
for (int i = nums.size() - 1; i >= 0; i--) {
res[i] *= next; // 计算res
next *= nums[i]; // 再计算后缀积
}
return res;
}
};