一、题目
给定一个非负索引 rowIndex
,返回「杨辉三角」的第 rowIndex
行。
在「杨辉三角」中,每个数是它左上方和右上方的数的和。

示例 1:
输入: rowIndex = 3
输出: [1,3,3,1]
示例 2:
输入: rowIndex = 0
输出: [1]
示例 3:
输入: rowIndex = 1
输出: [1,1]
二、思路
这题跟之前的杨辉三角差不多,依然采用动态规划的思路求解,但是有些小细节要注意。dp数组的行数要是 rowIndex + 1。0-rowindex 总共 rowIndex + 1行!
三、代码
java
class Solution {
public List<Integer> getRow(int rowIndex) {
Integer[][] dp = new Integer[rowIndex + 1][];
//遍历每一行
for(int i = 0 ;i <= rowIndex;i++) {
//初始化当前行,第0行有一个元素,第1行有2个元素
dp[i] = new Integer[i + 1];
//每一行的第一个和最后一个元素总是1
dp[i][0] = dp[i][i] = 1;
//计算中间元素 j 不能等于i因为不存在dp[i][i]
for(int j = 1; j < i;j++) {
dp[i][j] = dp[i - 1][j - 1] + dp[i - 1][j];
}
}
List<Integer> list = Arrays.asList(dp[rowIndex]);
//返回结果
return list;
}
}