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

分析:

要看清楚下一行与上一行的关系。控制好循环结束的条件。

还有提交的时候发现,输入的是负数的时候返回的是[[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;
        }
    }


你可能感兴趣的:(23.Pascal's Triangle)