【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;

    }
};

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

相关/参考链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值