class Solution
{
public:
vector<vector<int>> generate(int numRows)
{
//返回的结果数组
vector<vector<int>> res;
if (numRows == 0) return res;
//存放每一行数据的临时数组
vector<int> temp;
//构建第一行
temp.push_back(1);
res.push_back(temp);
if (numRows == 1) return res;
//构建第二行
temp.push_back(1);
res.push_back(temp);
if (numRows == 2) return res;
//外层for循环从2开始到numRows结束,构建每一行
for (int i = 2; i < numRows; i++)
{
temp.clear();
//每行第一个元素为1
temp.push_back(1);
//内层for循环从0开始到i-1结束,构建每一行中1以外的元素
for (int j = 0; j < i - 1; j++)
{
//每个非边界元素为上一行的对应j和j+1下标元素之和
temp.push_back(res[i - 1][j] + res[i - 1][j + 1]);
}
//每行末尾元素为1
temp.push_back(1);
//本行放入结果中
res.push_back(temp);
}
return res;
}
};
LeetCode 29:求杨辉三角前n行
最新推荐文章于 2023-08-09 22:21:40 发布