Given numRows, generate the first numRows of Pascal's triangle.
For example, given numRows = 5,
Return
Return
[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ]比较基础的题目,没有什么需要特别介绍的,实现的时候小心点别越界就OK了。
public List<List<Integer>> generate(int numRows) { List<List<Integer>> result = new ArrayList<List<Integer>>(); List<Integer> row1 = new ArrayList<Integer>(); List<Integer> row2 = new ArrayList<Integer>(); if(numRows == 1) { row1.add(1); result.add(new ArrayList<Integer>(row1)); } else if(numRows > 1) { row1.add(1); result.add(new ArrayList<Integer>(row1)); for(int i = 2; i <= numRows; i++) { row2 = new ArrayList<Integer>(); row2.add(1); for(int j = 1; j <= i-2; j++) { row2.add(row1.get(j-1) + row1.get(j)); } row2.add(1); result.add(new ArrayList<Integer>(row2)); row1 = row2; } } return result; }
没有评论:
发表评论