Given an index k, return the kth row of the Pascal’s triangle.
For example, given k = 3,
Return [1,3,3,1].
Note:
Could you optimize your algorithm to use only O(k) extra space?
int* getRow(int rowIndex, int* returnSize) {
*returnSize = rowIndex + 1;
int** num = (int**)malloc(sizeof(int*) * (*returnSize));
for (int i = 0; i < *returnSize; i++)
num[i] = (int*)malloc(sizeof(int) * (i+1));
for (int i = 0; i < *returnSize; i++)
{
for (int j = 0; j <= i; j++)
{
if (j == 0 || j == i)
num[i][j] = 1;
else
num[i][j] = num[i-1][j-1] + num[i-1][j];
}
}
int* returnNum = (int*)malloc(sizeof(int)*(*returnSize));
for (int i = 0; i < *returnSize; i++)
returnNum[i] = num[(*returnSize) - 1][i];
for (int i = 0; i < *returnSize; i++)
free(num[i]);
free(num);
return returnNum;
}