sourcecode

Sunday, December 9, 2012

Pascal's Triangle II


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) {
        // Start typing your C/C++ solution below
        // DO NOT write int main() function
        vector<int> r1,r2;
        vector<int>* p1 = &r1;
        vector<int>* p2 = &r2;
        p2->push_back(1);
        for(int ii = 0; ii <= rowIndex; ++ii){
            swap(p1,p2);
            p2->resize(ii+1);
            (*p2)[0] = 1;
            (*p2)[ii] = 1;
            for(int jj = 1; jj < ii; ++jj){
                (*p2)[jj] = (*p1)[jj-1] + (*p1)[jj];
            }
        }
        return (*p2);
    }
};

No comments: