leetcode-119-pascal’s triangle ii

Problem Description:

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?

题目大意:

给定一个数字N,返回帕斯卡三角的第N行结果。只能使用 O(k)的额外空间。

Solutions:

用循环累加的办法生成对应行即可。

Code in C++:

class Solution {
public:
    vector<int> getRow(int rowIndex) {
        vector<int> row(1,1);
        if(rowIndex<1) return row;
        for(int i=1;i<=rowIndex;i++)
        {
            int prev1=row[0];
            int prev2;
            for(int j=1;j<i;j++)
                {
                    prev2=row[j];
                    row[j]+=prev1;
                    prev1=prev2;
                }
            row.push_back(1);
        }
        return row;
    }
};