(1).得会使用vector:
a.vector<vector<int>>
b.vector.assign(num,vector<int>(1))
c.vector.push_back()
(2).做题的时候,一定不要着急!要慢慢分析才能找到规律
本题思路:
1.前两行没有插入;
2.从第i(=0)行开始,每次向中间插入的数的个数为i-1
3.每次插入的数值都是从(上一行的第一个元素+上一行的第二个元素)开始,并且插入的数的个数是i-1
class Solution {
public:
vector<vector<int>> generate(int numRows) {
vector<vector<int>> res;
if(numRows<=0) return res;
res.assign(numRows,vector<int>(1));
for(int i=0;i<numRows;i++)
{
res[i][0]=1;
if(i==0) continue;
//插入的数的个数为i-1: j=[1,2,3,…,i-1]
//所以从第三行(i=2)开始才有数插入
for(int j=1;j<i;j++)
{
//直接把插入的数往初始化的行(<vector<int>)里送就行
//每次插入的数值都是从(上一行的第一个元素+上一行的第二个元素)开始
res[i].push_back(res[i-1][j-1]+res[i-1][j]);
}
res[i].push_back(1);
}
return res;
}
};