numRowsの数ヤンホイトライアングルと世代前の非負整数numRowsの数、与えられました。
パスカルの三角形では、各番号は、その左上と右上の数です。
例:
入力:5
出力
:
[ [1]、
[1,1]、
[1,2,1]、
[1,3,3,1]、
[1,4,6,4,1]
]
考え
各行は、各行が全て1に初期化することができるエンドツーエンドであり、次いで、修飾された計算
コード:
1 クラスソリューション{ 2 公共: 3 ベクトル<ベクトル< INT >>生成(INT numRowsの数){ 4。 // パスカルの三角形の各行を格納するための空の配列、定義-小さなアレイを 5。 ベクトル<ベクトル< INT >> RES; 6つの // 最初の2行は、デフォルトのアレイである 7。 IF(numRowsの数が<= 2 ){ 8。 ためには、(int型 I = 0 ; IはnumRowsの数を<; Iは++ ){ 9 ベクトル< INT >小(Iは、+ 1。 、1。); / /第1のライン1を有し、第二列は、二つの1は 10 res.push_back(スモール); //は、空の配列RESの最初の2行に入金されるであろう 。11 } 12で 復帰 RES; // RESはパスカルの三角形を含ん最初の二行 13である } 14 他{ 15の RESが=生成(numRows- 。1); // RESアレイnumRowsの数-1フロントロー得る 16 ベクトルを< INT > newsmall(numRowsの数は、1。); // numsRow最初の行を初期化する 17 @ numRowsの数-1の最初の行からは、第numRowsの数で計算を得るために第numRowsの数、1行配列インデックスRES-2 numRowsの数 18である ため(INT J = 0; J <RES [numRows- 2 ] .size() - 1 ; J ++ ){ 19 newsmall [J + 1 ] =のRES [numRows- 2 ] [J] + RES [numRows- 2 ] [J + 1 ]。 20 } 21 res.push_back(newsmall)。 22 } 23の リターンRES。 24 } 25 }。