详细思路

滚动数组,保存上一次数组,生成本次数组,上一次数组初始化为空,如果上一次数组不是空就计算,最后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;
    }
};
踩过的坑
边界情况对着图试一试就能确定了

 

posted on 2021-08-02 16:30  offer快到碗里来~  阅读(31)  评论(0)    收藏  举报