Pascal's Triangle II

Given an integer rowIndex, return the rowIndexth row of the Pascal's triangle.

Notice that the row index starts from 0.

Follow up:

Could you optimize your algorithm to use only O(k) extra space?

Example 1:

Input: rowIndex = 3
Output: [1,3,3,1]

Example 2:

Input: rowIndex = 0
Output: [1]

Example 3:

Input: rowIndex = 1
Output: [1,1]

Constraints:

  • 0 <= rowIndex <= 33

Solutions

🧠 Cpp

class Solution
{
public:
    vector<int> getRow(int rowIndex)
    {
        vector<int> line = {1};

        while(rowIndex--)
        {
            vector<int> new_line;
            new_line.reserve(line.size()+1);

            new_line.emplace_back(1);
            if(line.size()!=1)
            {
                for(int i = 0; i <line.size()-1; ++i)
                    new_line.emplace_back(line[i]+line[i+1]);
            }
            new_line.emplace_back(1);

            line = std::move(new_line);
        }

        return line;

    }
};

Last updated