LeetCode-119。パスカルの三角形II-分析とコード(Java)

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、その他

何もありません。

おすすめ

転載: blog.csdn.net/zml66666/article/details/113839314