# 119. 杨辉三角 II
# 题目
给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。
进阶:
你可以优化你的算法到 O(k) 空间复杂度吗?
# 题解
# 递推
var getRow = function(rowIndex) {
const row = new Array(rowIndex + 1).fill(0);
row[0] = 1;
for (let i = 1; i <= rowIndex; ++i) {
for (let j = i; j > 0; --j) {
row[j] += row[j - 1];
}
}
return row;
};
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
时间复杂度:O(rowIndex^2)。
空间复杂度:O(1)。不考虑返回值的空间占用。
# 线性递推
var getRow = function(rowIndex) {
const row = new Array(rowIndex + 1).fill(0);
row[0] = 1;
for (let i = 1; i <= rowIndex; ++i) {
row[i] = (row[i - 1] * (rowIndex - i + 1)) / i;
}
return row;
};
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
时间复杂度:O(rowIndex)。
空间复杂度:O(1)。不考虑返回值的空间占用。