LeetCode: Pascal's Triangle II

Given an index k, return the kth row of the Pascal’s triangle.

For example, given k = 3,
Return [1,3,3,1].

Note:
Could you optimize your algorithm to use only O(k) extra space?

class Solution {
public:
    vector<int> getRow(int rowIndex) {
        vector<vector<int> >tri(rowIndex+1);
        vector<int>res;
        for(int i=0;i<rowIndex+1;++i)
        {
            tri[i].resize(i+1);
        }
        for(int i=0;i<rowIndex+1;++i)
        {
            tri[i][0] = 1;
            tri[i][i] = 1;
        }
        for(int i=1;i<rowIndex+1;++i)
        {
            for(int j =1;j<i;++j)
            {
                tri[i][j] = tri[i-1][j-1]+tri[i-1][j];
            }
        }

        for(int i = 0;i<rowIndex+1;++i)
        {
            int temp =tri[rowIndex][i];
            res.push_back(temp);
        }

        return res;
    }
};

posted on 2017-03-31 12:00  gechen  阅读(71)  评论(0编辑  收藏  举报

导航