题目链接:238. 除自身以外数组的乘积 - 力扣(LeetCode)
要找除开本身以外其他元素的乘积,如果可以用除法的话,直接累积所有元素然后除以每个元素
不能用除法,可以用两个数组计算元素的前缀乘积和后缀乘积,然后相乘即可
只能用一个输出数组的话,可以先用这个数组记录前缀累积,然后再用一个变量记录后缀累积,用前缀累积乘以后缀累积就是答案
代码语言:javascript复制class Solution {
public:
vector<int> productExceptSelf(vector<int> &nums) {
vector<int> ans(nums.size());
ans[0] = 1;
for (int i = 1; i < nums.size(); i)
ans[i] = ans[i - 1] * nums[i - 1];
int suffix = 1;
for (int i = nums.size() - 1; i >= 0; --i) {
ans[i] = ans[i] * suffix;
suffix = suffix * nums[i];
}
return ans;
}
};