【leetcode】118. 杨辉三角( Pascal's Triangle )


题目描述

【leetcode】118. 杨辉三角( Pascal’s Triangle )
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
在这里插入图片描述
在杨辉三角中,每个数是它左上方和右上方的数的和。
在这里插入图片描述

第一次解答

思路:
vector<vector>里第一个vector是{1},
往后每添加一行,下一行下标i的元素都是其上一行下标i-1和i的元素和
若i-1或i越界,则对应元素值用0替代

注意:
numRows为0和1的情况

test case:
5
1
0

class Solution {
public:
    vector<vector<int>> generate(int numRows) {
        vector<vector<int>> Pascal_triangle;
        for(int i=0; i<numRows; ++i){
            // 添加一行元素
            Pascal_triangle.push_back(vector<int>(i+1, 1));
            for(int j=1; j<i; ++j){
                // 给每个元素赋值
                int left = Pascal_triangle[i-1][j-1];
                int right = Pascal_triangle[i-1][j];
                Pascal_triangle[i][j] = left + right;
            }
        }

        return Pascal_triangle;

    }
};

结果:
在这里插入图片描述

相关/参考链接

发布了88 篇原创文章 · 获赞 61 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/a435262767/article/details/103897279