【LeetCode热题100】【数组】除自身以外数组的乘积

2024-04-16 08:13:53 浏览数 (1)

题目链接: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;
    }
};

0 人点赞