杨辉三角

107 阅读1分钟

杨辉三角

说明

给定一个非负整数 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;
    }

\