leetcode Pascal's Triangle II

Pascal's Triangle类似,这里是不需要记录所有的,而是给定一个行号,返回那一行的数据就可以了。例如:

For example, given k = 3,
Return [1,3,3,1].

所以给0的时候返回[1].

题目要求O(k)空间,也就是除了要返回的空间外,其他是常数空间。

那就用一个tmp来存上一个矩阵中i-1的值,然后按照加法原址更新。

class Solution {

public:

    vector<int> getRow(int rowIndex) {

        vector<int> ans;

        ans.push_back(1);

        while(rowIndex-- > 0)

        {

            int len = ans.size(), tmp = ans[0];

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

            {

                ans[i] += tmp;

                tmp = ans[i] - tmp;

            }

            ans.push_back(1);

        }

        return ans;

    }

};

 

你可能感兴趣的:(LeetCode)