动态规划
code
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> res = new ArrayList<>();
if(numRows<1) //边界条件判断
return res;
//生成第一行
List<Integer> first = new ArrayList<>();
first.add(1);
res.add(first);
//遍历后面的行
for(int i=1;i<numRows;i++){
List<Integer> temp = new ArrayList<>();
temp.add(1);
//使用上一行的信息来计算当前行
for(int j=1;j<i;j++)
temp.add(res.get(i-1).get(j-1)+res.get(i-1).get(j));
temp.add(1);
res.add(temp);
}
return res;
}