剑指Offer 66.构建乘积数组

学习写法

力扣 Krahets 剑指 Offer 66. 构建乘积数组(表格分区,清晰图解)

两个for循环。
上下两个三角


class Solution {
public:
    vector<int> multiply(const vector<int>& A)
     { 
        int len=A.size();
        if(len==0) return {};
        vector<int> B(len,1);
        B[0]=1;
        int temp=1;
        for(int i=1;i<len;i++)
        {
            B[i]=B[i-1]*A[i-1];
        }

        for(int i=len-2;i>=0;i--)
        {
            temp*=A[i+1];
            B[i]*=temp;
        }
    return B;
    }
};

注意 int temp=1; B[0]=1; 等的初始化。

posted @ 2023-03-19 22:41  专心Coding的程侠  阅读(11)  评论(0编辑  收藏  举报