Thursday, February 28, 2013

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> result;
        if(rowIndex==0){
            result.push_back(1);
        }
       
        int k=0;
        vector<int> temp;
        while(k < rowIndex){
            temp.clear();
            temp.push_back(1);
            for(int i=1; i<result.size(); i++){
                temp.push_back(result[i]+result[i-1]);
            }
            temp.push_back(1);
            result.clear();
            result = temp;
            k++;
        }
       
        return result;
    }
};

No comments:

Post a Comment