题目:给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
示例:
输入: 5 输出: [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1]
思路:初始化三角形腰上的“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);
a[i][0]=a[i][i]=1;
if(i>1){
int j;
for(j=1;j<=i/2;j++){
a[i][j]=a[i-1][j-1]+a[i-1][j];
a[i][i-j]=a[i][j];
}
}
}
return a;
}
};
结果: