LeetCode--Pascal's Triangle

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]
]

题目描述:给出行号,输出杨辉三角的前N行。

题目解析:要注意特殊情况,当输入的是0时,应返回空的列表;然后分1和大于1两种情况分别添加。

代码如下:

 

public class Solution {
    public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> l = new ArrayList<List<Integer>>();
        if(numRows<=0)
            return l;
        if(numRows==1){
            ArrayList<Integer> li = new ArrayList<Integer>();
            li.add(1);
            l.add(li);
            return l;
        }
        
        List<Integer> li = new ArrayList<Integer>();
        li.add(1);
        l.add(li);//第一行事先放入
        for(int i=2; i<=numRows; i++){
            List<Integer> l1 = new ArrayList<Integer>();
            l1.add(1);  //开始加1
            List<Integer> lt = l.get(i-2);
            for(int j=0; j<lt.size()-1; j++){
                int t = lt.get(j)+lt.get(j+1);
                l1.add(t);
            }
            l1.add(1);  //最后加1
            l.add(l1);
        }
        return l;
    }
}

 

posted @ 2015-05-25 20:22  江湖小妞  阅读(100)  评论(0编辑  收藏  举报