class Solution {
public:
vector<int> getRow(int rowIndex) {
/* vector<int> p;
if(rowIndex<0) return p;
else{
if (rowIndex==0){
p.push_back(1);
}
else{
vector<int> q=getRow(rowIndex-1);
for(int i=0;i<rowIndex+1;i++){
if(i==0||i==rowIndex)
p.push_back(1);
else
p.push_back(q[i-1]+q[i]);
}
}
return p;
}*/
//只用循环,不用递归的方法,一行行的替代,从最后一数开始
vector<int> p(rowIndex+1);
if(rowIndex<0) return p;
else{
p[0]=1;
for (int i = 1;i<=rowIndex;i++){
for(int j=i;j>0;j--){
if(j==i||j==0){
p[j]=1;
} else {
p[j]=p[j]+p[j-1];
}
}
}
return p;
}
}
};
public:
vector<int> getRow(int rowIndex) {
/* vector<int> p;
if(rowIndex<0) return p;
else{
if (rowIndex==0){
p.push_back(1);
}
else{
vector<int> q=getRow(rowIndex-1);
for(int i=0;i<rowIndex+1;i++){
if(i==0||i==rowIndex)
p.push_back(1);
else
p.push_back(q[i-1]+q[i]);
}
}
return p;
}*/
//只用循环,不用递归的方法,一行行的替代,从最后一数开始
vector<int> p(rowIndex+1);
if(rowIndex<0) return p;
else{
p[0]=1;
for (int i = 1;i<=rowIndex;i++){
for(int j=i;j>0;j--){
if(j==i||j==0){
p[j]=1;
} else {
p[j]=p[j]+p[j-1];
}
}
}
return p;
}
}
};
本文介绍了一种高效算法,用于计算帕斯卡三角形的特定行,通过使用循环而非递归的方式,该算法能够减少计算复杂度并简化实现过程。
881

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



