Pascal's Triangle

    xiaoxiao2022-06-25  159

    1,题目要求

    Given a non-negative integer numRows, generate the first numRows of Pascal’s triangle. In Pascal’s triangle, each number is the sum of the two numbers directly above it.

    Example:

    Input: 5 Output:

    [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ]

    给定非负整数numRows,生成Pascal三角形的第一个numRows。

    2,题目思路

    对于这道题,是求一个给定高度的帕斯卡三角(杨辉三角)。

    问题本身不难,主要在于对三角的值的构造和计算上。 对于每一行,因为开头和结束的值都是1,因此,我们在计算时就应该讲它们拿出来单独处理,即每次遍历,从下标1开始遍历即可。

    3,代码实现

    int x = []() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); return 0; }(); class Solution { public: vector<vector<int>> generate(int numRows) { if(numRows == 0) return {}; vector<vector<int>> res {{1}}; for(int i = 1;i<numRows;i++){ vector<int> tmp {1}; for(int j = 1;j<i;j++) tmp.push_back(res[i-1][j-1]+res[i-1][j]); tmp.push_back(1); res.push_back(tmp); } return res; } };

    最新回复(0)