给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。
在杨辉三角中,每个数是它左上方和右上方的数的和。
示例:
输入: 3
输出: [1,3,3,1]
进阶:
你可以优化你的算法到 O(k) 空间复杂度吗?
思路:
因为k是索引,所以rowindex需要+1表示行数,最后返回res[rowIndex]即可。
代码:
class Solution {
public:
vector<int> getRow(int rowIndex) {
vector<vector<int>> res;
for(int i=0;i<rowIndex+1;i++)
res.push_back(vector<int>(i+1,1));
for(int r=2;r<rowIndex+1;r++)
{
for(int c=1;c<r;c++)
{
res[r][c] = res[r-1][c-1] + res[r-1][c];
}
}
return res[rowIndex];
}
};