给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。

在杨辉三角中,每个数是它左上方和右上方的数的和。
示例:
输入: 5
输出:
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Solution118b {
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> out = new ArrayList<>();
int[][] array = new int[numRows][numRows];
for (int i = 0; i < array.length; i++) {
List<Integer> outrow = new ArrayList<Integer>();
for (int j = 0; j <= i; j++) {
if (j == 0 || j == i) {
array[i][j] = 1;
} else {
array[i][j] = array[i - 1][j - 1] + array[i - 1][j];
}
outrow.add(array[i][j]);
}
out.add(outrow);
}
return out;
}
public static void main(String[] args) {
Solution118b s = new Solution118b();
int numRows = 5;
System.out.println(s.generate(numRows));
}
}
该博客展示了如何使用Java实现杨辉三角的生成,通过二维数组存储并计算每个数,遵循每个数等于其左上方和右上方数的和的规则。示例给出了生成前5行杨辉三角的结果。
611

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



