Leetcode P0118"Pascal's Triangle" 题解

2020/09/09 Leetcode

博文中会简要介绍Leetcode P0118题目分析及解题思路。

“Pascal’s Triangle”是一道比较基础的题目,按题目要求迭代计算即可。

Given a non-negative integer numRows, generate the first numRows of Pascal’s triangle.

img

In Pascal’s triangle, each number is the sum of the two numbers directly above it.

以下是Java的题解代码实现。

class Solution {
    public List<List<Integer>> generate(int numRows) {
        List<List<Integer>> triangle = new ArrayList<>();
        if (numRows == 0)
            return triangle;
        
        for (int row=1; row<=numRows; ++row) {
            List<Integer> level = new ArrayList<>();
            for (int col=1; col<=row; ++col) {
                if (col == 1 || col == row)
                    level.add(1);
                else {
                    int left = triangle.get(row-2).get(col-2);
                    int right = triangle.get(row-2).get(col-1);

                    level.add(left+right);
                }
            }
            triangle.add(level);
        }
        
        return triangle;
    }
}

Search

    Table of Contents