题目
简单
给定一个非负整数 numRows
,生成「杨辉三角」的前 numRows
行。
在「杨辉三角」中,每个数是它左上方和右上方的数的和。
示例 1:
输入: numRows = 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]
示例 2:
输入: numRows = 1 输出: [[1]]
提示:
1 <= numRows <= 30
面试中遇到过这道题?
1/5
是
否
通过次数
514.8K
提交次数
678.1K
通过率
75.9%
思路
从上到下模拟一遍就是了,nums[i][j]=nums[i-1][j-1]+nums[i-1][j]。注意边界判断
代码
class Solution {
public:
vector<vector<int>> generate(int numRows) {
vector<vector<int>> ans;
for(int i=0;i<numRows;i++)
{
vector<int> temp;
for(int j=0;j<=i;j++)
{
if(j==0||j==i) temp.push_back(1);
else temp.push_back(ans[i-1][j-1]+ans[i-1][j]);
}
ans.push_back(temp);
}
return ans;
}
};