


You are given an integer N. Your task is to return a 2-D ArrayList containing the pascal’s triangle till the row N.
A Pascal's triangle is a triangular array constructed by summing adjacent elements in preceding rows. Pascal's triangle contains the values of the binomial coefficient. For example in the figure below.

For example, given integer N= 4 then you have to print.
1
1 1
1 2 1
1 3 3 1
Here for the third row, you will see that the second element is the summation of the above two-row elements i.e. 2=1+1, and similarly for row three 3 = 1+2 and 3 = 1+2.
The first line of input contains an integer ‘T’ denoting the number of test cases.
The first line of each test case contains a single integer N denoting the row till which you have to print the pascal’s triangle.
Output format :
For each test case, return the 2-D array/list containing the pascal’s triangle till the row N.
Note:
You do not need to print anything; it has already been taken care of. Just implement the given function.
1 <= T <= 40
1 <= N <= 50
Time Limit: 1 sec
3
1
2
3
1
1
1 1
1
1 1
1 2 1
For the first test case:
The given integer N = 1 you have to print the triangle till row 1 so you just have to output 1.
For the second test case:
The given integer N = 2 you have to print the triangle till row 2 so you have to output
1
1 1
For the third test case
The given integer N = 3 you have to print the triangle till row 3 so you have to output
1
1 1
1 2 1
3
4
5
6
1
1 1
1 2 1
1 3 3 1
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
Try to think about how you get the values of coefficients recursively.
The idea is to use recursion to get the value of the coefficients we will create a helper function CALPASCAL which will take row and entry as its input parameters and we call this function in the main function of PRINTPASCAL.
O(2^N), Where ‘N’ denotes the number of Rows.
As we are calculating the coefficients every time in the row and the sum of coefficients for each row is 2^R where R is the row number and for all rows, it will give 2^N (by applying geometric progression).
O(N), Where ‘N’ denotes the number of Rows.
We need O(N) space to store all the values of a given row in a list. Also at worst case, our recursion will need O(N) stack space for the recursive call.