https://leetcode.cn/problems/pascals-triangle-ii/
给定一个非负索引 rowIndex,返回「杨辉三角」的第 rowIndex 行。
在「杨辉三角」中,每个数是它左上方和右上方的数的和。
示例:
输入: rowIndex = 3
输出: [1,3,3,1]
思路1:
可以生成长度为rowIndex的杨辉三角形,最后一行即为所求
var getRow = function(rowIndex) {
let dp = []
dp[0] = [1]
for (let i = 1; i < rowIndex + 1; i++) {
dp[i] = []
dp[i][0] = 1
dp[i][i] = 1
for (let j = 1; j < i; j++) {
dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j]
}
}
return dp[rowIndex]
};
思路二:
可以将数组设置成滚动的,每次都从数组的前一个状态中得到新的值。
var getRow = function(rowIndex) {
let res = []
for (let i = 0; i < rowIndex + 1; i++) {
res.push(1);
let start = 1;
for (let j = 1; j < i; j++) {
let temp = res[j]
res[j] += start;
start = temp;
}
}
return res
};