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.
In Pascal's triangle, each number is the sum of the two numbers directly above it.
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
Was this helpful?