238. Product of Array Except Self【力扣】

题意理解

将数组元素相乘,每个元素存放除本身之外其他元素的积。要求不用除法。

问题分析

两次遍历,一次是1,1,1×2, 1×2×3;一次是4×3×2,4×3,4,1。

其他

hard题不好想。

链接

    vector<int> productExceptSelf(vector<int>& nums) {
        int len = nums.size();
        vector<int> output(len, 1);
        
        output[0] = 1;
       // cout << len << endl;
        for(int i = 1; i < len; i ++)
        {
            output[i] = output[i-1] * nums[i-1]; //1, 1, 1*2, 1*2*3
            //cout << i << '\t' << output[i] << endl;
        }
        int prod = 1;
        for(int i = len - 1; i >= 0; i --)
        {
            output[i] *= prod;   //4*3*2, 4*3, 4, 1
            prod *= nums[i];
            //cout << i << '\t' << output[i] << endl;
        }

        return output;        
    }

猜你喜欢

转载自blog.csdn.net/xiexie1357/article/details/88357646
今日推荐