Pascal's Triangle
Given numRows, generate the first numRows of Pascal's triangle.
For example, given numRows = 5,
Return
[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ]
用C++的vector时,注意每一个vector的大小不一样。
class Solution {
public:
vector<vector<int> > generate(int numRows) {
int n = numRows;
vector<vector<int> >a(n); // 创建一个空的二维vector
if(n >= 1) a[0].push_back(1);
if(n >= 2) {a[1].push_back(1);a[1].push_back(1);}
for (int i = 2;i < n;i++) {
a[i].push_back(1);// 第一个元素赋值为1
for (int j = 1;j < i;j++) {
a[i].push_back(a[i - 1][j - 1] + a[i - 1][j]);//根据上一层递推
}
a[i].push_back(1);//最后一个元素赋值为1
}
return a;
}
};
class Solution {
public:
vector<vector<int> > generate(int numRows) {
int n = numRows;
vector<vector<int> >a(n); // 创建一个空的二维vector
if(n >= 1) a[0].push_back(1);
if(n >= 2) {a[1].push_back(1);a[1].push_back(1);}
for (int i = 2;i < n;i++) {
a[i].push_back(1);// 第一个元素赋值为1
for (int j = 1;j < i;j++) {
a[i].push_back(a[i - 1][j - 1] + a[i - 1][j]);//根据上一层递推
}
a[i].push_back(1);//最后一个元素赋值为1
}
return a;
}
};