题目描述
给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。
在杨辉三角中,每个数是它左上方和右上方的数的和。
示例:
输入: 3
输出: [1,3,3,1]
进阶:
你可以优化你的算法到 O(k) 空间复杂度吗?
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/pascals-triangle-ii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
白话题目:
算法:
详细解释关注 B站 【C语言全代码】学渣带你刷Leetcode 不走丢 https://www.bilibili.com/video/BV1C7411y7gB
C语言完全代码
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int* getRow(int rowIndex, int* returnSize){
*returnSize = rowIndex + 1;
int* pre = (int*)malloc(sizeof(int) * (rowIndex + 1));
int* cur = (int*)malloc(sizeof(int) * (rowIndex + 1));
pre[0] = 1;
cur[0] = 1;
for (int i = 1; i <= rowIndex; i++) {
cur[0] = 1;
cur[i] = 1;
for (int j = 1; j < i; j++) {
cur[j] = pre[j] + pre[j - 1];
}
for (int k = 0; k <= i; k++) {
pre[k] = cur[k];
}
}
return cur;
}