给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
在杨辉三角中,每个数是它左上方和右上方的数的和。
示例:
输入: 5
输出:
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]
class Solution {
public:
vector<vector<int>> generate(int numRows) {
vector<vector<int>> s(numRows);
for(int i=0;i<numRows;i++){
s[i].resize(i + 1);
s[i][0]=1;
s[i][i]=1;
}
for(int i=2;i<numRows;i++){
for(int j=1;j<i;j++){
s[i][j]=s[i-1][j-1]+s[i-1][j];
}
}
return s;
}
};
题解:杨辉三角是经常做的题目之一了,但以前都是使用C语言写的,第一次使用C++进行做杨辉三角。
resize()是分配空间大小的函数。