暴力解决 :
构造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;
}