LeetCode-119。楊輝トライアングルII [パスカルのトライアングルII]-分析とコード[Java]
1.トピック
k≤33である非負のインデックスkが与えられた場合、Yanghui三角形のk番目の行を返します。
楊慧の三角形では、各数字は左上と右上の数字の合計です。
例:
输入: 3
输出: [1,3,3,1]
上級:
アルゴリズムをO(k)空間の複雑さに最適化できますか?
出典:LeetCode
リンク:https://leetcode-cn.com/problems/pascals-triangle-ii
著作権はLeetCodeが所有しています。商用の再版については、公式の承認に連絡してください。非商用の再版については、出典を示してください。
2、分析とコード
1.直接計算
(1)考える
楊慧三角形の性質によれば、n行目のm番目の数はC(n、m)であり、組み合わせ数の式と組み合わせると、m番目の数はC(n、m)= C( n、m-1)*(n-m + 1)/ m。
(2)コード
class Solution {
public List<Integer> getRow(int rowIndex) {
//rowIndex从0计数
List<Integer> row = new ArrayList<>();
row.add(1);
for (int i = 1; i <= rowIndex; i++)
row.add((int) ((long) row.get(i - 1) * (rowIndex - i + 1) / i));
return row;
}
}
(3)結果
実行時間:0ミリ秒、
すべてのJava送信でユーザーの100.00%を上回っています。メモリ消費量:36.5 MB、すべてのJava送信でユーザーの14.94%を上回っています。
3、その他
何もありません。