1、题目介绍
给定一个非负整数 numRows
,生成「杨辉三角」的前 numRows
行。
2、思路分析
杨辉三角中每行的第一个元素和最后一个元素都是 1 ,除此之外每个元素都是它的上一列元素+上一列 的前一个元素。
代码:
public static List<List<Integer>> generate(int numRows) {
//用于存放最后结果
List<List<Integer>> result = new ArrayList<>();
for (int i = 0; i < numRows; i++) {//遍历每一行
//用于存放每行的数据
List<Integer> row = new ArrayList<>();
for (int j = 0; j <= i; j++) { // 得到每一行的数据
if (j == 0 || j == i) {
// 每一行的第一个元素与最后一个元素都是 1
row.add(1);
} else {
//不是第一个和最后一个。别的元素就是他所对应的上一列的元素+上一列前一个元素的和
row.add(result.get(i - 1).get(j - 1) + result.get(i - 1).get(j));
}
}
//没遍历一行就将每行的数据放到result集中
result.add(row);
}
return result;
}