题目:给定一个非负整数 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;
}
};结果:

本文介绍了一个C++程序,用于生成给定行数的杨辉三角。通过初始化三角形的边缘为1,并利用上一行的数据来计算当前行的值。适用于算法初学者练习。
715

被折叠的 条评论
为什么被折叠?



