杨辉三角
说明
给定一个非负整数 numRows, 生成「杨辉三角」的前 numRows 行。
在「杨辉三角」中,每个数是它左上方和右上方的数的和。
示例 1:
输入: numRows = 5
输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]
示例 2:
输入: numRows = 1
输出: [[1]]
提示:
1 <= numRows <= 30
来源:力扣(LeetCode) 链接:leetcode.cn/problems/pa…
题解
解法
public static void main(String[] args) {
List<List<Integer>> demo = demo(5);
for (List<Integer> integers : demo) {
for (Integer integer : integers) {
System.out.print(integer+"\t");
}
System.out.println();
}
}
public static List<List<Integer>> demo(int numRows){
List<List<Integer>> list = new ArrayList<>();
for (int i = 0; i < numRows; i++) {
List<Integer> integers = new ArrayList<>();
if(i == 0){
integers = Collections.singletonList(1);
}else if(i == 1){
integers = Arrays.asList(1,1);
}else{
List<Integer> integerList = list.get(i - 1);
integers.add(1);
for (int j = 1; j < i; j++) {
Integer integer1 = integerList.get(j - 1);
Integer integer2 = integerList.get(j);
integers.add(integer1 + integer2);
}
integers.add(1);
}
list.add(integers);
}
return list;
}
\