给定一个非负索引 rowIndex,返回「杨辉三角」的第 rowIndex 行。
在「杨辉三角」中,每个数是它左上方和右上方的数的和。
示例 1:
输入: rowIndex = 3
输出: [1,3,3,1]
示例 2:
输入: rowIndex = 0
输出: [1]
示例 3:
输入: rowIndex = 1
输出: [1,1]
提示:
0 <= rowIndex <= 33
解题思路:
先生成完整的杨辉三角,然后将题目要求的那一行输出即可
代码:
class Solution {
public:
vector<int> getRow(int rowIndex) {
vector<int> ans(rowIndex + 1,0);
vector<vector<int>> dp(rowIndex + 1);
for(int i = 0; i < rowIndex + 1; i++){
for(int j = 0; j <= i; j++){
if(j == 0 || i == j){
dp[i].push_back(1);
}else{
dp[i].push_back( dp[i - 1][j] + dp[i - 1][j - 1]);
}
}
}
int k = 0;
for(int i = 0; i < rowIndex + 1; i++){
ans[i] = dp[rowIndex][i];
}
return ans;
}
};