1.パスカルの三角形
非負の整数を考えると numRowsの数、のパスカルの三角形前に生成 numRowsの数の ライン。
パスカルの三角形では、各番号は、その左上と右上の数です。
例: 入力:5 出力: [ [ 1 ]、 [ 1、1 ]、 [ 1、2、1 ]、 [ 1、3、3、1 ]、 [ 1、4、6、4、1 ] ]
ジャワ
クラスのソリューション{ 公共リスト<リスト<Integer型>>生成(int型numRowsの数){ リスト <リスト<Integer型>> RS = 新しいのArrayList <リスト<Integer型>> (); 一覧 <整数>前= nullを。 以下のために(int型 I = 1; I <= numRowsの数、iは++ ){ リスト <整数> TMP = 新規のArrayList <> (); 用(INT J = 0; J <I、J ++ ){ 場合(j == 0 || J == I-1 ){ tmp.add( 1 )。他{ tmp.add(prior.get(J -1)+ prior.get(J))。 } } (TMP)rs.add。 前 = TMP; } 戻りRS。 } }
PHP
クラスソリューション{ / * * * @param整数$ numRowsの数 整数@return * [] [] * / 関数(生成$ numRowsの数を){ $ RS = []; 用($ I ; = 1 $ iが <= $ numRowsの数 ; $ iは ++ ){ $ TMP = []; 用($ jを = 0; $ jの < $ I ; $のJ ++ ){ 場合($ jは == 0 ||の$ jの == $ iは-1 ){ array_push($ TMP、1 )。 } 他{ array_push($ TMP、$ RS [ $ I -2] [ $ jを -1] + $ RS [ $ I -2] [ $のJ ])。 } } array_push($ RS、$ TMP )。 } を返す $ RSを。 } }
2.パスカルの三角形が最初である k個の 行
非負の屈折率の所定の K、 K ≤33であるが、第一パスカルの三角形に戻る k個の 行。
例: 入力: 3 出力:[ 1,3,3,1]
ダイレクト式の組み合わせを使用します
C(n,i) = n!/(i!*(n-i)!)
(I + 1)の用語は、項目の倍数であるI =(NI)/(I + 1)。
ジャワ
クラスのソリューション{ 公共の一覧<整数>のgetRow(int型rowIndexプロパティ){ 一覧 <整数> RS = 新しい ArrayListを<> (); 長 M = 1 。 以下のために(int型 I 0 =; I <= rowIndexに、私は++ ){ rs.add((INT )M)。 M = M×(rowIndexプロパティ-I)/(I + 1 )。 } 戻りRS。 } }
注意:
mは、オーバーフローが発生し、int型することができません
PHP
クラスソリューション{ / * * * @param整数$ rowIndexに 整数@return * [] * / 関数のgetRow($ rowIndexプロパティ){ $ M = 1 。 $ RS = []; 用($ I ; = 0 $ I <= $ rowIndexに、私は$ ++ ){ array_push($ RS、(INT)の$ M )。 $ M = $ M *($ rowIndexプロパティ - $ I)/($ I +1 )。 } リターン $ rsを、 } }