解題思路
寫出5行楊輝三角
1 rowIndex=0
1 1 rowIndex=1
1 2 1 rowIndex=2
1 3 3 1 rowIndex=3
1 4 6 4 1 rowIndex=4
可以發現從rowIndex=2開始,f[i][j]=f[i-1][j-1]+f[i-1][j]
因此O(k)即通過保存上一行的結果,就可以求得下一行
代碼
//O(K)空間複雜度
class Solution {
public:
vector<int> getRow(int rowIndex) {
vector<int> dp;
for (int i=0;i<=rowIndex;i++)
{
dp.push_back(1);//數組隨i增大1格
//當前項等於上一行中的該項和前一項相加
for (int j=i-1;j>0;j--)
{
dp[j] = dp[j - 1]+ dp[j];//dp[j]對應於f[i-1][j],dp[j-1]對應於f[i-1][j-1]
}
}
return dp;
}
};