一层层计算,每层的第一个元素不动,从第二个元素开始,result[i] = result[i-1] + result[i] 。类似于滚动数组,为了不覆盖,关键要从后(i-1)往前(1)计算。最后在添加一个1到数组结尾。
class Solution {
public:
vector<int> getRow(int rowIndex) {
vector<int> result;
result.push_back(1);
while(rowIndex > 0)
{
for(int i=result.size()-1; i>0; i--)
result[i] = result[i-1] + result[i];
result.push_back(1);
rowIndex--;
}
return result;
}
};