image.png

动态规划

根据上面的行来计算下面的行
image.png

code

  1. public List<List<Integer>> generate(int numRows) {
  2. List<List<Integer>> res = new ArrayList<>();
  3. if(numRows<1) //边界条件判断
  4. return res;
  5. //生成第一行
  6. List<Integer> first = new ArrayList<>();
  7. first.add(1);
  8. res.add(first);
  9. //遍历后面的行
  10. for(int i=1;i<numRows;i++){
  11. List<Integer> temp = new ArrayList<>();
  12. temp.add(1);
  13. //使用上一行的信息来计算当前行
  14. for(int j=1;j<i;j++)
  15. temp.add(res.get(i-1).get(j-1)+res.get(i-1).get(j));
  16. temp.add(1);
  17. res.add(temp);
  18. }
  19. return res;
  20. }