题:给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
示例
输入: 5
输出:
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]
代码实现
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> list = new ArrayList<List<Integer>>();
if (numRows <= 0) {
return list;
}
for (int i = 1; i <= numRows; i++) {
List li = new ArrayList();
if (i == 1) {
li.add(1);
list.add(li);
continue;
}
for (int j = 1; j <= i; j++) {
if (j == 1) {
li.add(1);
} else {
int a = list.get(i - 2).get(j - 2);
int b = list.get(i - 2).size() >= j ? list.get(i - 2).get(j - 1) : 0;
li.add(a + b);
}
}
list.add(li);
}
return list;
}