製品配列を作成する

 配列A [0,1、...、n-1]を指定して、配列B [0,1、...、n-1]を作成してください。ここで、要素B [i] = A [ 0] * A [1] * ... * A [i-1] * A [i + 1] * ... * A [n-1]。除算は使用できません。(注:プロビジョニングB [0] = A [1] * A [2] * ... * A [n-1]、B [n-1] = A [0] * A [1] * ... * A [n-2];)

クラスSolution {
 public 
    vector < int > multiply(const vector < int >&A){
         int n = A.size(); 
        ベクトル < int > B1(n、1 ); 
        ベクトル < int > B2(n、1 ); 
        ベクトル < int > B(n、1 );
        forint i = 1 ; i <n; ++ i){ 
            B1 [i] = B1 [i- 1 ] * A [i- 1 ];
        } 
        forint i = n- 2 ; i> = 0 ; -i){ 
            B2 [i] = B2 [i + 1 ] * A [i + 1 ]; 
        } 
        forint i = 0 ; i <n; i ++ ){ 
            B [i] = B1 [i] * B2 [i]; 
        } 
        Bを返す; 
    } 
};

2つの配列B1、B2を使用して、位置iの前後の積の合計を保存してから、これらの2つの配列を乗算して新しい配列を生成し、積の配列を取得します。

おすすめ

転載: www.cnblogs.com/qin5429/p/12693248.html