美文网首页
Leetcode数组easy | 118. 杨辉三角

Leetcode数组easy | 118. 杨辉三角

作者: Ivan_Lan | 来源:发表于2018-11-29 21:34 被阅读15次

给定一个非负整数 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;
    }
};

相关文章

网友评论

      本文标题:Leetcode数组easy | 118. 杨辉三角

      本文链接:https://www.haomeiwen.com/subject/rteqcqtx.html