【题目描述】
给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。
在「杨辉三角」中,每个数是它左上方和右上方的数的和。
https://leetcode.cn/problems/pascals-triangle/
【示例】
【代码】5467
package com.company;标签:get,res,list,numRows,LeeCode,杨辉三角,new,118 From: https://blog.51cto.com/u_13682316/5983785
// 2023-01-02
import java.util.*;
class Solution {
List<List<Integer>> res = new ArrayList<>();
public List<List<Integer>> generate(int numRows) {
if (numRows == 0) return res;
for (int i = 0; i < numRows; i++) {
List<Integer> list = new ArrayList<>();
for (int j = 0; j <= i; j++) {
// 第一个或者最后一个数字都是1
if (j == 0 || j == i){
list.add(1);
}else{
// 利用res.get(i - 1)获取上一层的list信息 然后分别获取j-1和j的元素
list.add(res.get(i - 1).get(j - 1) + res.get(i - 1).get(j));
}
}
res.add(list);
}
System.out.println(res);
return res;
}
}
public class Test{
public static void main(String[] args) {
new Solution().generate(5); // [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]
new Solution().generate(1); // [[1]]
}
}