题目来源:leetcode118 罗辉三角
题目描述:
给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。
在杨辉三角中,每个数是它左上方和右上方的数的和。
示例:
输入: 5
输出:
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
解题思路:
每一行,最左和最右是1,其他的值等于上一行同下标和小一个下标的值相加。见代码。
class Solution {
public:
vector<vector<int>> generate(int numRows) {
if(numRows==0) return {};
if(numRows==1) return {{1}};
if(numRows==2) return {{1},{1,1}};
vector<vector<int>> ans;
ans.push_back({1});
ans.push_back({1,1});
for(int i=2;i<numRows;i++){
vector<int> temp(i+1,1);
for(int j=1;j<=i-1;j++){
temp[j]=ans[i-1][j-1]+ans[i-1][j];
}
ans.push_back(temp);
}
return ans;
}
};