打印杨辉三角

时间秒杀一切 提交于 2019-12-13 16:07:11

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

  • 给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
public List<List<Integer>> generate(int numRows) {
      List<List<Integer>> res = new ArrayList();
      if (numRows <= 0) return res;
      List<Integer> row1 = new ArrayList();
      row1.add(1);
      List<Integer> prevRow = row1;
      for (int i=2; i<=numRows; i++) {
            List<Integer> curRow = new ArrayList(i);
            curRow.add(1);
            for (int j=1; j<i-1; j++) { // 除去两边的1 中间的数字由上一列的相邻两个数字相加
                curRow.add( prevRow.get(j-1) + prevRow.get(j));
            }
            curRow.add(1);   // 将1 加上
            res.add(curRow);
            prevRow = curRow;
      }
      return res;
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!