leetcode-238. 除自身以外数组的乘积

 

class Solution {
public:
    vector<int> productExceptSelf(vector<int>& nums) {
        if(nums.size()==0)
            return {};
        vector<int> a(nums.size(),1);
        vector<int> b(nums.size(),1);
        vector<int> c(nums.size(),1);
        for(int i = 1; i < nums.size(); i++){
            a[i] = a[i-1]*nums[i-1];  // a[i]保存的是0到i-1的乘积
        }

        for(int i = nums.size()-2; i>=0; i--){
            b[i] = b[i+1]*nums[i+1]; // b[i]保存的是i+1到末尾的乘积
        }

        for(int i = 0; i < nums.size(); i++){
            c[i] = a[i]*b[i];  // c[i] 刚好等于a[i]*b[i]
        }
        return c;
    }
};

 

posted @ 2021-07-24 11:26  三一一一317  阅读(33)  评论(0)    收藏  举报