给定一个非负索引 rowIndex,返回「杨辉三角」的第 rowIndex 行。
示例 1:
输入: rowIndex = 3
输出: [1,3,3,1]
示例 2:
输入: rowIndex = 0
输出: [1]
示例 3:
输入: rowIndex = 1
输出: [1,1]
提示:
0 <= rowIndex <= 33
进阶:
你可以优化你的算法到 O(rowIndex) 空间复杂度吗?
相关标签
数组
动态规划
class Solution {
public:
vector<int> getRow(int rowIndex)
{
vector<int> result(rowIndex + 1, 1);
if(rowIndex < 2) // 若rowIndex小于3,直接返回即可
return result;
for(int i = 1; i < rowIndex; ++i)
{
// 由于我们的迭代计算要依赖“上一行的数据”,因此我们从后往前计算
// 是为了避免覆盖了“上一行”的数据
for(int j = i; j > 0; --j)
result[j] = result[j - 1] + result[j];
}
return result;
}
};