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<int> a,b,c;
        a.push_back(1);
        b.push_back(1);
        b.push_back(1);
        if(rowIndex == 0) return a;
        if(rowIndex == 1) return b;
        for(int i = 2; i<=rowIndex; i++){
            a.clear();
            a.push_back(1);
            for(int j = 1; j < i; j++){
                a.push_back(b[j-1]+b[j]);
            }
            a.push_back(1);
            c = a;
            a = b;
            b = c;
        }
        return b;
    }
};

 

posted on 2014-12-03 20:10  code#swan  阅读(116)  评论(0)    收藏  举报

导航