这道题我是这样做的,就是先将Pascal Triangle先建立出来,再根据形参返回相应的一行即可。
当然,也有巧妙的办法直接建立并返回指定行的数据也是可以的。
C++代码实现(两种解法)
class Solution {
public:
vector<int> getRow(int rowIndex) {
vector<int> vi(rowIndex + 1);
vi[0] = 1;
for (int i = 0; i <= rowIndex ; ++i)
{
for (int j = i; j > 0; --j)
{
vi[j] = vi[j] + vi[j-1];
}
}
return vi;
}
};
/*解法二:
class Solution {
public:
vector<int> getRow(int rowIndex) {
vector<vector<int>> v(rowIndex+1);
for(int i=0;i<rowIndex+1;i++){
v[i].resize(i+1);
v[i][0]=v[i][i]=1;
for(int j=1;j<i;j++){
v[i][j]=v[i-1][j-1]+v[i-1][j];
}
}
return v[rowIndex];
}
};
*/