Leetcode数组easy | 118. 杨辉三角

给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。

在杨辉三角中,每个数是它左上方和右上方的数的和。
示例:
输入: 5
输出:
[
     [1],
    [1,1],
   [1,2,1],
  [1,3,3,1],
 [1,4,6,4,1]
]

解答:

class Solution {
public:
    vector<vector<int>> generate(int numRows) {
        
        vector<vector<int> > Ret;  //  新建二维的动态数组。用于储存杨辉三角
        for(int i=0;i<numRows;i++){
            vector<int> v;  //  新建的子数组,放在循环内部,每次都需要重置
            if(i==0)  //  第一行,只有一个数1
                v.push_back(1);
            else{
                v.push_back(1);  //  每一行的第一位是1
                for(int j=0;j<Ret[i-1].size()-1;j++){
                    v.push_back(Ret[i-1][j]+Ret[i-1][j+1]);
                }  //  第i行的计算:用第i-1行的元素
                v.push_back(1);  //  每一行的最后一位是1
            }
            Ret.push_back(v);  //  插入子数组
        }
        return Ret;
    }
};
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容