【LeetCode】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?

注意:只开辟O(K)的内存空间,所以只保存前一组数列和当前数组,并不断滚动更新即可。

 

class Solution {

public:

    vector<int> getRow(int rowIndex) {

        // Note: The Solution object is instantiated only once and is reused by each test case.

        vector<int> res;

        vector<int> pre;

        if(rowIndex == 0)

        {

            res.push_back(1);

            return res;

        }    

        pre.push_back(1);

        for(int i = 1; i <= rowIndex; i++)

        {

            res.push_back(1);

            for(int j = 1; j < i+1; j++)

            {

                res.push_back( pre[j-1] + (j < pre.size() ? pre[j] : 0) );

            }

            pre.clear();

            for(int k = 0; k < res.size(); k++)

            {

                pre.push_back(res[k]);

            }

            res.clear();

        }

        return pre;

    }

};


 

 

你可能感兴趣的:(LeetCode)