
详细思路
滚动数组,保存上一次数组,生成本次数组,上一次数组初始化为空,如果上一次数组不是空就计算,最后pre=cur数组,继续计算当前数组
class Solution { public: vector<int> getRow(int rowIndex) { vector<int>pre; vector<int>cur={1}; for(int i=0;i<=rowIndex;i++){ if(!pre.empty()){ for(int j=1;j<=cur.size()-1;j++)cur[j]=pre[j]+pre[j-1]; cur.push_back(1); } for(int k=0;k<cur.size()-1;k++)pre[k]=cur[k]; pre.push_back(1); } return cur; } };
踩过的坑
边界情况对着图试一试就能确定了
浙公网安备 33010602011771号