给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
链接:https://leetcode-cn.com/problems/pascals-triangle/
/*基本思想:按照杨辉三角的构造规则直接写就好
*/
class Solution {
public:
vector<vector<int>> generate(int numRows) {
vector<int> row;
vector<vector<int>> res;
if(numRows ==0)
return res;
row.push_back(1);
res.push_back(row);
for(int i=1;i<numRows;i++)
{
row.clear();
row.push_back(1);
for(int j=1;j<i;j++)
{
row.push_back(res[i-1][j-1]+res[i-1][j]);
}
row.push_back(1);
res.push_back(row);
}
return res;
}
};
给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。
链接:https://leetcode-cn.com/problems/pascals-triangle-ii/
/*基本思想:还是主要理解杨辉三角的构造规则,这时有一个技巧,直接覆盖就好,不需要全部存储,直接一步一步构造最后需要的那一行
*/
class Solution {
public:
vector<int> getRow(int rowIndex) {
vector<int> dp(rowIndex+1);
for(int i=0;i<=rowIndex;i++)
{
for(int j=i;j>=0;j--)
{
if(j==0 || j==i)
dp[j] = 1;
else
{
dp[j]=dp[j]+dp[j-1];
}
}
}
return dp;
}
};