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;
}
该博客介绍了如何使用Java实现杨辉三角的生成,重点在于理解每行元素的计算规则,即除了首尾为1外,其他元素等于上一行相邻两个元素之和。通过双重循环遍历行和列,构建每一行的元素,并存储到结果集合中。
577

被折叠的 条评论
为什么被折叠?



