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;
}
没有评论:
发表评论