• 一、数组---杨辉三角


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

     

    在杨辉三角中,每个数是它左上方和右上方的数的和。

    示例:

    输入: 5
    输出:
    [
    [1],
    [1,1],
    [1,2,1],
    [1,3,3,1],
    [1,4,6,4,1]
    ]

    思路 

    每行首尾都是1,可以先先初始化每行全是1,再计算修改

    代码:

     1 class Solution {
     2 public:
     3     vector<vector<int>> generate(int numRows) {
     4         //先定义一个空数组,用来存放杨辉三角的每一行——小数组
     5         vector<vector<int>> res;
     6         //前两行是默认的数组
     7         if(numRows<=2){
     8             for(int i=0;i<numRows;i++){
     9                 vector<int> small(i+1,1);//第1行有1个1,第二行有2个1
    10                 res.push_back(small);//将前两行存入到res空数组中
    11             }
    12             return res;//res包含了杨辉三角的前两行
    13         }
    14         else{
    15             res = generate(numRows-1);//得到前numRows-1行的res数组
    16             vector<int> newsmall(numRows,1);//初始化第numsRow行
    17             //由第numRows-1行计算得到第numRows行,第numRows-1行在res数组中的索引为numRows-2
    18             for(int j=0;j<res[numRows-2].size()-1;j++){
    19                 newsmall[j+1] = res[numRows-2][j] + res[numRows-2][j+1];
    20             }
    21             res.push_back(newsmall);
    22         }
    23         return res;
    24     }
    25 };
  • 相关阅读:
    视图集
    子类视图
    Mixin扩展类
    GenericAPIView
    APIView
    ModelSerializer使用
    序列化和反序列化
    合并购物车
    pyplot基本绘制
    STL sort “invalid operator <”
  • 原文地址:https://www.cnblogs.com/pacino12134/p/10991329.html
Copyright © 2020-2023  润新知