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> ret;  
        for(int i = 0; i <= rowIndex; i++){  
            if(i == 0) {  
                ret.push_back(1);  
                continue;  
            }              
            for(int j = i; j >= 0; j--){    // from end to begin  
                if(j == 0) {  
                    ret[0] = 1;  
                } else if(j == i){  
                    ret.push_back(1);  
                }else {  
                    ret[j] = ret[j-1] + ret[j];  
                }  
            }  
        }
         return ret;
    }
};

 

posted @ 2014-11-06 14:51  li303491  阅读(90)  评论(0编辑  收藏  举报