首页 > 技术文章 > LeetCode记录-Q118-杨辉三角的1ms解法

jason0529 2020-09-14 12:04 原文

解题思路

杨辉三角的规律就是:

  1. 每一行的第一个数和最后一个数是1
  2. 每一行中间的数字,row[i][j]=row[i-1][j-1]+row[i-1][j];
  3. 初始化条件,第一行只有一个1.

代码

class Solution {
    public List<List<Integer>> generate(int numRows) {
List<List<Integer>> res = new ArrayList<>();
        List<Integer> pre = null;
        for (int i = 0; i < numRows; i++) {
            List<Integer> tmp = new ArrayList<>();
            if (i == 0) {
                tmp.add(1);
            } else {
                tmp.add(1);
                for (int j = 1; j < i ; j++) {
                    tmp.add(j,pre.get(j-1)+pre.get(j));
                }
                tmp.add( 1);
            }
            pre = tmp;
            res.add(tmp);
        }
        return res;
    }
}

推荐阅读