23.Pascal's Triangle

来源:互联网 发布:室内设计网站 知乎 编辑:程序博客网 时间:2024/06/02 03:42

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]],输入为0的时候返回的是[[]]。在做的时候一定要判断好边界条件,以免浪费时间。

public List<List<Integer>> generate(int numRows) {List<List<Integer>> list = new ArrayList();List<Integer> rowlist = null;List<Integer> newrowlist = null;if(numRows <0){newrowlist = new ArrayList();        newrowlist.add(1);        list.add(newrowlist);return list;}else if(numRows == 0){return list;}else{        int oldsize = list.size();        newrowlist = new ArrayList();        newrowlist.add(1);        list.add(newrowlist);        oldsize = list.size();        for(int i=oldsize;i<numRows;i++){        rowlist=list.get(i-1);        newrowlist = new ArrayList();        newrowlist.add(1);        for(int j=1;j<i;j++){        int num = rowlist.get(j-1)+rowlist.get(j);        newrowlist.add(num);        }        newrowlist.add(1);        list.add(newrowlist);        }        return list;        }    }


0 0
原创粉丝点击