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?
/**
* Return an array of size *returnSize.
* Note: The returned array must be malloced, assume caller calls free().
*/
int* getRow(int rowIndex, int* returnSize) {
int *result;
int i,j,tmp,tmp2;
rowIndex++;
* returnSize = rowIndex;
result= (int*)malloc(sizeof(int*)*rowIndex);
result[0]=1;
tmp=1;
for(i=1;i<rowIndex;i++)
{
for(j=1;j<i;j++)
{
tmp2=result[j];
result[j]=result[j]+tmp;
tmp=tmp2;
}
result[j]=1;
}
return result;
}
防止覆盖,需要保留上次的值。