letecode [118] - パスカルの三角形

非負整数numRowsの数を考えると、パスカルの三角形の最初のnumRowsの数を生成します。

パスカルの三角形において、各数値は、直接上記2つの数の合計です。
例:
入力:5
出力

     [ [1]、
    [1,1]、
   [1,2,1]、
  [1,3,3,1]、
 [1,4,6,4,1]
]
 

効果の件名:

  パスカルの三角形のn行は出力前に、二次元ベクトルとして表現しました。

理解:

  2ラインは、初期化の前に生じます。得られた蓄積前の行を使用して、ラインの3-N、。

コードC ++:

クラス解決{
 パブリック
    ベクトル <ベクトル< INT >>生成する(INT numRowsの数){ 
        ベクトル <ベクトル< INT >> VEC。
        もし(numRowsの数は== 0を返すVEC; 
        ベクトル < int型 > rowVec。
        rowVec.push_back(1 )。
        vec.push_back(rowVec)。
        もし(numRowsの数は== 1を返すVEC。
        rowVec.push_back(1 )。
        vec.push_back(rowVec)。
        もし(numRowsの数== 2リターンVEC。  
        int型私= 3 ;
        一方、(I <= numRowsの数){ 
            rowVec.clear()。
            rowVec.resize(I); 
            rowVec [ 0 ] = 1 int型 J = 1 ;
            ながら(J <I- 1 ){ 
                rowVec [j]は VEC = [I- 2 ] [J- 1 ] + VEC [I- 2 ] [J]。
                ++ J; 
            } 
            rowVec [I - 1] = 1 
            vec.push_back(rowVec)。
            ++ 私は、
        } 
        戻りの事。
    } 
}。

結果:

  で実行する場合:  0 MSの  メモリ消費量:  8.8メガバイトを

おすすめ

転載: www.cnblogs.com/lpomeloz/p/10994864.html