08. Pascal's Triangle
The problem can be found at the following link: Question Link
My Approach
Initialize a 2D vector
answithnrows. This vector will store the rows of Pascal's Triangle.Create a vector
onecontaining a single element with the value 1, representing the first row of Pascal's Triangle.Start a loop from
i = 1ton - 1(inclusive) to generate the remaining rows of Pascal's Triangle.Inside the loop: a. Create an empty vector
rowto represent the current row being generated.b. Start another loop from
j = 0toi(inclusive) to calculate each element of the current row.c. In the inner loop:
If
jis 0, it means we are at the beginning of the row. Add the element at the same position from the previous row (ans[i-1][j]) torow.If
jis equal toi, it means we are at the end of the row. Add the element at the same position from the previous row (ans[i-1][i-j]) torow.For all other values of
j, calculate the element by summing the elements from the previous row at positionsj-1andj. Add this value (x) torow.
d. After completing the inner loop, assign the
rowvector as the current row ofans(at indexi).After the loop is finished,
answill contain Pascal's Triangle up to thenth row. Returnans.
Time and Auxiliary Space Complexity
Time Complexity:
O(n)Auxiliary Space Complexity:
O(1)
Code (C++)
class Solution {
public:
vector<vector<int>> generate(int n) {
vector<vector<int>> ans(n);
vector<int> one(1,1);
ans[0] = one;
for(int i=1;i<n;i++){
vector<int> row;
for(int j=0;j<=i;j++){
if(j==0) row.push_back(ans[i-1][j]);
else if(j==i) row.push_back(ans[i-1][i-j]);
else{
int x = ans[i-1][j-1]+ans[i-1][j];
row.push_back(x);
}
}
ans[i] = row;
}
return ans;
}
};
Contribution and Support
For discussions, questions, or doubts related to this solution, please visit our discussion section. We welcome your input and aim to foster a collaborative learning environment.
If you find this solution helpful, consider supporting us by giving a ⭐ star to the rishabhv12/Daily-Leetcode-Solution repository.
Last updated
Was this helpful?