Question
Given an index k, return the kth row of the Pascal’s triangle.
For example, given k=3 ,
Note:
Could you optimize your algorithm to use only O(k) extra space?
Analysis
帕斯卡三角,也就是传说中的杨辉三角。其形状为
[1]
[1 1]
[1 2 1]
[1 3 3 1]
[1 4 6 4 1]
其中每一行的第
i
个元素的值是其上面一行的
时间和空间复杂度均为
Code
int* getRow(int rowIndex, int* returnSize) {
int* pascal=(int*)malloc(sizeof(int)*(rowIndex+1));
pascal[0]=1;
for(int i=0;i<=rowIndex;i++){
for(int j=i;j>=0;j--){
if(j==i) pascal[j]=1;
else pascal[j]=pascal[j-1]+pascal[j];
}
}
*returnSize=rowIndex+1;
return pascal;
}