题目:给定一个行数n,生成n行帕斯卡三角形
算法:逐层遍历数组
public class Solution {
public List<List<Integer>> generate(int numRows) {
if (numRows < 0) {
return null;
}
List<List<Integer>> pascalTriangle = new ArrayList<List<Integer>>();
for (int i=0; i<numRows; ++i) {
if (i == 0) {
List<Integer> currTriangle = new ArrayList<Integer>();
currTriangle.add(1);
pascalTriangle.add(i, currTriangle);
} else {
List<Integer> currTriangle = new ArrayList<Integer>();
List<Integer> lastTriangle = pascalTriangle.get(i-1);
int lastInteger = 0;
for (int j=0; j<lastTriangle.size(); ++j) {
currTriangle.add(lastInteger + lastTriangle.get(j));
lastInteger = lastTriangle.get(j);
}
currTriangle.add(1);
pascalTriangle.add(currTriangle);
}
}// end of for
return pascalTriangle;
}
}