方法一:简单的方式,空间复杂度不是O(k)
std::vector<int> getRow(int rowIndex) {
std::vector<std::vector<int>> a;
std::vector<int> v;
v.push_back(1);
a.push_back(v);
v.push_back(1);
a.push_back(v);
if(rowIndex==0)return a[0];
if(rowIndex==1)return a[1];
for(int i=2;i<=rowIndex;i++){
v.clear();
v.push_back(1);
for(int j=1;j<=i-1;j++)
v.push_back(a[i-1][j-1]+a[i-1][j]);
v.push_back(1);
a.push_back(v);
}
return a[rowIndex];
}
方法二:空间复杂度为O(k),借鉴博客https://blog.csdn.net/hy971216/article/details/80435515
std::vector<int> getRow(int rowIndex) {
std::vector<int> a;
for(int i=0;i<=rowIndex;i++){
for(int j=i-1;j>0;j--){
a[j]=a[j-1]+a[j];
}
a.push_back(1);
}
return a;
}