题目
题目来源
给定一个非负索引 rowIndex,返回「杨辉三角」的第 rowIndex 行。
在「杨辉三角」中,每个数是它左上方和右上方的数的和。
思路
跟前一题的思路大致相同,由于此处只需要返回一个数组,可以考虑使用包含两个int数组的二维数组进行存储,节省不需要的存储空间
相关思考
调试时总是多了几个数字,最后发现是由于没有clear导致,需要先对之前的数组清空后再push_back,否则就是在之前的结果上叠加,必然会多几个数字。
代码(C++/力扣)
class Solution {
public:
vector<int> getRow(int rowIndex) {
vector<int> a[2];
a[0]={1};
a[1]={1,1};
if(rowIndex==0) return a[0];
if(rowIndex==1) return a[1];
for(int i=2;i<=rowIndex;i++)
{
a[i%2].clear();//先清空,再push_back
a[i%2].push_back(1);
for(int j=1; j<i ;j++)
{
a[i%2].push_back(a[(i-1)%2][j-1]+a[(i-1)%2][j]);
}
a[i%2].push_back(1);
}
return a[rowIndex%2];
}
};