[LeetCode][Java] Pascal's Triangle

来源:互联网 发布:单品数据跟踪 编辑:程序博客网 时间:2024/05/25 19:55

题目:

Given numRows, generate the first numRows of Pascal's triangle.

For example, given numRows = 5,
Return

[     [1],    [1,1],   [1,2,1],  [1,3,3,1], [1,4,6,4,1]]

题意:

题意很明确了,就是生成杨辉三角。

算法分析:

按行生成,每一行中出去两头的元素固定为1外,其余元素都是由对应上一行的两个元素的和得到的。

AC代码:

<span style="font-family:Microsoft YaHei;font-size:12px;">public class Solution {    public List<List<Integer>> generate(int numRows)     {        List<List<Integer>> finallist=new ArrayList<List<Integer>>();        if (numRows==0) return finallist;        else        {        for(int i=0;i<=numRows-1;i++)        {            finallist.add(i,getRow(i));        }        }        return finallist;    }public static List<Integer> getRow(int rowIndex)     {        List<Integer> a=new ArrayList<Integer>();               for (int i=0;i<=rowIndex;i++)        {        Integer[] ta =new Integer[a.size()];            a.toArray(ta);        for(int j=0;j<i+1;j++)            {                if(j==i) a.add(j,1);                else if (j==0) a.set(j,1);                else                {                   int temp=ta[j-1]+ta[j];                   a.set(j,temp);                 }            }        }        return a;    }}</span>

0 0
原创粉丝点击