美文网首页
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