1,题目要求
n = 5:
也就是输出规定行数的杨辉三角。
2,题目思路
观察杨辉三角的构造形式,在每一行的最左和最右侧都是1,而其中的元素的值,则是上面一行的相邻两个值的和构造成的。也就是:num[i][j] = num[i-1][j-1] + num[i-1][j]
3,程序源码
class Solution {
public:
vector<vector<int>> generate(int numRows) {
vector<vector<int>> num(numRows);
for(int i=0;i<numRows;i++)
for(int j = 0;j<=i;j++)
{
if(j == 0 || j == i)
num[i].push_back(1);
else
num[i].push_back(num[i-1][j-1] + num[i-1][j]);
}
return num;
}
};
需要注意的是,因为容器是向量而不是数组,因此在取向量的值时,需要对向量数进行初始化,否则num[i]会出错。