程序员社区

杨辉三角形

在这里插入图片描述
法1:

#include<iostream>
#include<vector>
using namespace std;
class Solution {
public:
    vector<vector<int>> generate(int numRows)
    {
                                        //这里用的是匿名对象也叫做临时对象
        vector<vector<int>> ret(numRows,vector<int>(numRows,1));
        display(ret, numRows);
        vector<vector<int>>  result;
        result.resize(ret.size());
        //这个地方可以优化,在递归的时候就按照个数插好,这样就可以直接返回ret数组就行了,我这里偷懒了
        for (int i = 0; i < ret.size(); i++)
        {
            for (int j = 0; j < i + 1; j++)
            {
                result[i].push_back(ret[i][j]);
            }
        }
        return result;
    }
    void display(vector<vector<int>>& ret, int numRows)
    {
        if (numRows == 2||numRows==1)
        {                      
            return;
        }
        display(ret, numRows-1);
        for (int i = 1; i < numRows - 1; i++)
        {
            ret[numRows - 1][i] = ret[numRows - 2][i - 1] + ret[numRows - 2][i];
        }
    }
};
void test()
{
    Solution s;
    vector<vector<int>> ret= s.generate(8);
    for (int i = 0; i <8; i++)
    {
        for (int j = 0; j <ret[i].size(); j++)
        {
            cout << ret[i][j] << " ";
        }
        cout << endl;
    }
}
int main()
{
    test();
    system("pause");
    return 0;
}

在这里插入图片描述

在这里插入图片描述

赞(0) 打赏
未经允许不得转载:IDEA激活码 » 杨辉三角形

相关推荐

  • 暂无文章

一个分享Java & Python知识的社区