package com.heu.wsq.leetcode;
import java.util.ArrayList;
import java.util.List;
/**
* 118. 杨辉三角
* @author wsq
* @date 2020/12/6
* 给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
* 在杨辉三角中,每个数是它左上方和右上方的数的和。
*
* 示例:
*
* 输入: 5
* 输出:
* [
* [1],
* [1,1],
* [1,2,1],
* [1,3,3,1],
* [1,4,6,4,1]
* ]
*
* 链接:https://leetcode-cn.com/problems/pascals-triangle
*/
public class GenerateTriangle {
public List<List<Integer>> generate(int n){
List<List<Integer>> ans = new ArrayList<>();
for(int i = 1; i <= n; i++){
List<Integer> row = new ArrayList<>(i);
if (i == 1){
row.add(1);
}else if (i == 2){
row.add(1);
row.add(1);
}else{
row.add(1);
for (int j = 1; j < i - 1; j++) {
row.add(ans.get(i-2).get(j-1) + ans.get(i-2).get(j));
}
row.add(1);
}
ans.add(row);
}
return ans;
}
public static void main(String[] args) {
int n = 5;
GenerateTriangle gt = new GenerateTriangle();
List<List<Integer>> ans = gt.generate(n);
for (List<Integer> an : ans) {
for (Integer integer : an) {
System.out.print(integer + " ");
}
System.out.println();
}
}
}
118. 杨辉三角
最新推荐文章于 2025-06-14 19:45:10 发布