给定一个非负索引 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) {
rowIndex++;
int a[40]={0,1,0},pre,pp;
for(int i = 2;i<=rowIndex;i++)
{
pre = 0;
for(int j = 1;j<i;j++)
{
pp = a[j];
a[j]=a[j]+pre;
pre = pp;
}
a[i]=1;
}
vector<int> ret;
for(int i = 1;i<=rowIndex;i++) ret.push_back(a[i]);
return ret;
}
};