法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;
}