什麼是楊輝三角?
楊輝三角,是二項式係數在三角形中的一種幾何排列,中國南宋數學家楊輝1261年所著的《詳解九章算法》一書中出現。在歐洲,帕斯卡(1623----1662)在1654年發現這一規律,所以這個表又叫做帕斯卡三角形。帕斯卡的發現比楊輝要遲393年,比賈憲遲600年。
這樣的三角形排列就被稱爲楊輝三角。
我們能發現一些規律:
- 每一行的第一個元素和最後一個元素是1
- 每一行除了第一個和最後一個元素,當前元素的值都爲上一行的當前元素和前一個元素之和。
發現這些規律我們就可以寫出我們的代碼了。
public class Test {
public List<List<Integer>> generate(int numRows) {
//numRows是打印出第幾行
List<List<Integer>> list = new ArrayList<>();
if (numRows < 1) {
//如果小於 1 行,直接返回
return list;
}
//list 裏面裝的還是一個集合
list.add(new ArrayList<>());
//先添加一個1 相當於 [ [1] ]
list.get(0).add(1);
for (int i = 1; i < numRows; i++) {
//要添加的新的一行
List<Integer> row = new ArrayList<>();
//保存要添加新的一行的上一行
List<Integer> prevRow = list.get(i - 1);
//先添加一個 1
row.add(1);
for (int j = 1; j < i; j++) {
//添加上一行的當前位置元素和前一個元素的和
row.add(prevRow.get(j - 1) + prevRow.get(j));
}
//添加每一行的最後一個 1
row.add(1);
//添加到集合中去
list.add(row);
}
return list;
}
}