LeetCode每日一題: 楊輝三角(No.118)

胖宅老鼠發表於2019-05-07

題目:楊輝三角


給定一個非負整數 numRows,生成楊輝三角的前 numRows 行。
複製程式碼

示例:


LeetCode每日一題:  楊輝三角(No.118)

在楊輝三角中,每個數是它左上方和右上方的數的和。
複製程式碼

思考:


 第一行為1,第二行開始,除了第一個和最後一個為1,其他的第i個等於遷移行的第i-1個加上前一行的第i個。
複製程式碼

實現:


  class Solution {
    public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> res = new ArrayList<>();
        //0行直接返回
        if (numRows == 0) {
            return res;
        }
        //加入第一行的1
        res.add(new ArrayList<Integer>());
        res.get(0).add(1);
        //從第二行開始
        for (int count = 1; count < numRows; count++) {
            List<Integer> list = new ArrayList<>();
            res.add(list);
            for (int inner = 0; inner <= count; inner++) {
                //第一個和最後一個為1
                if (inner == 0 || inner == count) {
                    list.add(1);
                } else {//其他的等於前一行的第(inner - 1)個元素與第inner個元素相加
                    list.add(res.get(count - 1).get(inner - 1) + res.get(count - 1).get(inner));
                }
            }
        }
        return res;
    }
}複製程式碼

相關文章