238. Product of Array Except Self(重)

很有趣的思路,这道题难在思维的转换,需要好生思考,每一位的输出结果被该位分成前后两段,本质上讲从前和从后遍历没有区别,故而可以在统一循环里完成,所以一次循环后就可输出结果。

参考人家的解法

class Solution {
public:
    vector productExceptSelf(vector& nums) {
        int n = nums.size();
        vector output (n, 1);
        int fromHead = 1, fromTail = 1;
        for (int i = 0; i < n; i ++){
            output[i] *= fromHead;
            fromHead *= nums[i];
            output[n - 1 - i] *= fromTail;
            fromTail *= nums[n - 1 - i];
        }
        return output;
    }
};

你可能感兴趣的:(238. Product of Array Except Self(重))