方法一:滚动数组
class Solution
{
public:
vector<int> getRow(int rowIndex)
{
vector<int> ve;
ve.resize(rowIndex + 1);
for (int i = 0; i <= rowIndex; ++i)
{
for (int j = rowIndex; j >= 0; --j)
{
if (j == rowIndex || j == 0)
{
ve[j] = 1;
}
else
{
ve[j] = ve[j] + ve[j - 1];
}
}
}
return ve;
}
};
int main()
{
Solution A;
vector<int> ve = A.getRow(4);
for (auto& x : ve)
{
cout << x << endl;
}
return 0;
}
时间复杂度:O(rowIndex^2)
空间复杂度:O(1),不考虑返回值的空间占用