1、题目描述
2、分析
实现杨辉三角,输入一个n,n为行数,根据杨辉三角的几个特性,杨辉三角以正整数构成,数字左右对称,每行由1开始逐渐变大,然后变小,回到1。第行的数字个数为
个第
行的第
个数字为组合数
。第
行数字和为
。除每行最左侧与最右侧的数字以外,每个数字等于它的左上方与右上方两个数字之和(也就是说,第
行第
个数字等于第
行的第
个数字与第
个数字的和)。这是因为有组合恒等式:
。可用此性质写出整个杨辉三角形。
3、代码
class Solution {
public:
vector<vector<int>> generate(int numRows) {
vector<vector<int>> res(numRows,vector<int>());
for(int i=0;i<numRows;++i){
res[i].resize(i+1,1);
for(int j=1;j<i;++j){
res[i][j]=res[i-1][j-1]+res[i-1][j];
}
}
return res;
}
};
4、相关知识点
vector的一个初始化方式,resize成员函数可以更改容器大小,也可以在第二个参数上初始化。