题目描述
给出一个值numRows,生成杨辉三角的前numRows行
例如,给出 numRows = 5,
返回
[↵ [1],↵ [1,1],↵ [1,2,1],↵ [1,3,3,1],↵ [1,4,6,4,1]↵]
思路:除了第一第二行特殊考虑,其余每次为前面两个数相加,循环即可
vector<vector<int> > generate(int numRows) {
// write code here
vector<vector<int>> res;
if(numRows==0)
return res;
vector<int> L1;
L1.push_back(1);
vector<int> L2;
L2.push_back(1);
L2.push_back(1);
if(numRows==1)
{
res.push_back(L1);
return res;
}
if(numRows==2)
{
res.push_back(L1);
res.push_back(L2);
return res;
}
vector<int> pre=L2;
res.push_back(L1);
res.push_back(L2);
for(int i=2;i<numRows;i++) //循环次数
{
vector<int> temp;
temp.push_back(1);
for(int j=0;j<pre.size()-1;j++)
{
temp.push_back(pre[j]+pre[j+1]);
}
temp.push_back(1);
res.push_back(temp);
pre=temp;
}
return res;
}