您的位置:首页 > 其它

给定索引k,返回Pascal三角形的第k行。例如,给定k = 3,返回[1,3,3,1]。

2017-10-11 11:20 281 查看
暴力解决 :

构造Pascal三角返回第K行

vector<int> getRow(int rowIndex) {
vector<int> result;
int a[rowIndex+1][rowIndex+1];
//构造Pascal三角
for(int i=0;i<=rowIndex;i++){
for(int j=0;j<=i;j++){
if(j==0||j==i){
a[i][j]=1;
}else{
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
}
for(int i=0;i<=rowIndex;i++){
result.push_back(a[rowIndex][i]);
}
return result;
}

构造Pascal三角形:

vector<vector<int> > generate(int numRows) {
vector<vector<int>> a;

if(numRows==0)
return a;
for(int i=0;i<numRows;i++){
vector<int> temp(i+1,1);
for(int j=1;j<i;j++){
temp[j]=a[i-1][j]+a[i-1][j-1];
}
a.push_back(temp);
}
return a;
}
第二 : 大神思路:

vector<int> getRow(int rowIndex) {
vector<int> result(rowIndex+1,1);
for(int i=2;i<=rowIndex;i++){
for(int j=i-1;j>0;j--){
result[j] += result[j-1];
}
}
return result;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐