思路分析:
(1)定义一个二维数组,行数为numRows。
(2)从第一行开始循环,并且利用resize()确定每一行当中有多少列,因为如果不确定的话,多的部分会被自动初始化为0.
(3)如果当前列为第一列或者最后一列的话,就赋值为1,否则就等于上一行同列的元素加上上一行的上一列的元素。
代码实现:
class Solution {
public:
vector<vector<int>> generate(int numRows) {
vector<vector<int>>a(numRows);
for(int i=0;i<numRows;i++)
{ a[i].resize(i+1);
for(int j=0;j<=i;j++)
{
if(j==0||j==i)
a[i][j]=1;
else{
a[i][j]=a[i-1][j]+a[i-1][j-1];
}
}
}
return a;
}
};