leetcode: Pascal's Triangle | Java最短代码实现

原题链接: 118. Pascal's Triangle

【思路】

杨辉三角形的每一行都和上一行有关,该行的首尾整数都是1,而其他元素都是上一行左右相邻两个元素之和:

    public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> result = new ArrayList<List<Integer>>();
        if (numRows == 0) return result;
        List<Integer> row = new ArrayList<Integer>();
        row.add(1);
        result.add(row);  //将第一行加入到 result 中
        for (int i = 1; i < numRows; i++) {
            row = new ArrayList<Integer>();
            row.add(1);  //该行的第一个元素为1
            List<Integer> temp = result.get(i - 1);
            for (int j = 1; j < i; j++)  //将该行中间的几个元素添加进去
                row.add(temp.get(j - 1) + temp.get(j));  //该行的中间几个元素是上一行左右相邻两个元素之和
            row.add(1);  //该行的最后一个元素为1
            result.add(row);
        }
        return result;
    }
15 / 15  test cases passed. Runtime: 1 ms  Your runtime beats 35.14% of javasubmissions.

你可能感兴趣的:(leetcode: Pascal's Triangle | Java最短代码实现)