Pascal's Triangle
Given numRows, generate the first numRows of Pascal's triangle.
For example, given numRows = 5, Return
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]
帕斯卡三角形就是杨辉三角形,观察下图可以得到规律
- 第N层上有N个元素
- 每一层第一个和最后一个元素都是1
- 第二层起每一层第n个元素都是前一层n-1位元素 + n位元素之和
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> re = new ArrayList<List<Integer>>();
if (numRows == 0) {
return re;
}
for (int i = 0; i < numRows; i++) {
List<Integer> row = new ArrayList<Integer>();
row.add(1);
for (int j = 1; j < i; j++) {
List<Integer> pre = re.get(i-1);
int n = pre.get(j-1) + pre.get(j);
row.add(n);
}
if (i != 0) {
row.add(1);
}
re.add(row);
}
return re;
}