Pascal's Triangle

来源:互联网 发布:mac压缩文件怎么打开 编辑:程序博客网 时间:2024/06/06 15:01

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

思路:用for循环写,然后每行前面的1,和后面的1,自己加进去,中间的由上一行的递推公式来。

每个元素是上一行两个元素的和。

public class Solution {    public List<List<Integer>> generate(int numRows) {        List<List<Integer>> lists = new ArrayList<List<Integer>>();        if(numRows <=0) return lists;        List<Integer> list = new ArrayList<Integer>();        list.add(1);        lists.add(list);        if(numRows == 1) return lists;                for(int i=1; i<numRows; i++){            List<Integer> newlist = new ArrayList<Integer>();            newlist.add(1);            List<Integer> oldlist = lists.get(i-1);            for(int j=1; j<oldlist.size(); j++){                newlist.add(oldlist.get(j-1)+oldlist.get(j));            }            newlist.add(1);            lists.add(newlist);        }        return lists;    }}


0 0