【leetcode】楊輝三角
阿新 • • 發佈:2018-12-19
楊輝三角
一、要求
給定一個非負整數 numRows,生成楊輝三角的前 numRows 行。
在楊輝三角中,每個數是它左上方和右上方的數的和。
示例:
輸入: 5 輸出: [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ]
二、思路
觀察楊輝三角,不難得出,第i行的第j個數等於第i-1行第j個數加上第i-1行第j-1個數。
三、程式碼實現
public List<List<Integer>> generate(int numRows) { List<List<Integer>> list = new ArrayList<List<Integer>>(); for (int i = 0; i < numRows; i++) { List<Integer> innerList = new ArrayList<>(); for (int j = 0; j <= i; j++) { //當為某行第一個數或是最後一個數時,都為1 if (j == 0 || j == i) { innerList.add(1); //否則第i行的第j個數等於第i-1行第j個數加上第i-1行第j-1個數 } else { innerList.add(list.get(i - 1).get(j) + list.get(i - 1).get(j - 1)); } } //別忘了在外層list中新增內層list list.add(innerList); } return list; }