原题地址(简单)
方法1—直接法
思路
直接根据题意做。
代码
class Solution {
public:
vector<vector<int>> generate(int numRows) {
vector<vector<int>> ans;
if(numRows >= 1) ans.push_back({1});
if(numRows >= 2) ans.push_back({1,1});
for(int i=2; i<numRows; i++) {
vector<int> tmp, v = ans[i-1];
tmp.push_back(1);
for(int j=0; j<v.size()-1; j++) {
tmp.push_back(v[j] + v[j+1]);
}
tmp.push_back(1);
ans.push_back(tmp);
}
return ans;
}
};
代码写的不好,官方的写的很简洁, 官方代码如下:
class Solution {
public:
vector<vector<int>> generate(int numRows) {
vector<vector<int>> ans(numRows);
for(int i=0; i<numRows; i++) {
ans[i].resize(i+1);
ans[i][0] = ans[i][i] = 1;
for(int j=1; j<i; j++) {
ans[i][j] = ans[i-1][j-1] + ans[i-1][j];
}
}
return ans;
}
};