陣列學習3——楊輝三角(涉及vector,vector.assign,規律)
(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; } };