LeetCode:杨辉三角【118】

LeetCode:杨辉三角【118】

题目描述

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

在杨辉三角中,每个数是它左上方和右上方的数的和。

示例:

输入: 5
输出:
[
     [1],
    [1,1],
   [1,2,1],
  [1,3,3,1],
 [1,4,6,4,1]
]

题目分析

  模拟杨辉三角的形成过程即可!

Java题解

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class PascalsTriangle_118 {
    public static List<List<Integer>> generate(int numRows) {
        List<List<Integer>> ans = new ArrayList<>();
        List<Integer> line = new ArrayList<>();
        if(numRows<1)
            return ans;
        line.add(1);
        ans.add(line);
        if(numRows>1)
        {
            for(int i = 2;i<=numRows;i++)
            {
                line = new ArrayList<>();
                line.add(1);
                List<Integer> lastLine  = ans.get(ans.size()-1);
                for(int j = 1;j<i-1;j++)
                {
                    line.add(lastLine.get(j)+lastLine.get(j-1));
                }
                line.add(1);
                ans.add(line);
            }
        }
        return ans;
    }

    public static void main(String[] args) {
        generate(5);
    }

}

  

原文地址:https://www.cnblogs.com/MrSaver/p/9813031.html