Given a non-negative integer numRows, generate the first numRows of Pascal’s triangle.
In Pascal’s triangle, each number is the sum of the two numbers directly above it.
Example:
Input: 5
Output:
[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]
【思路】
这是一道经典的题
首先我们明白杨辉三角的规律,除首尾外,其他数字是上一行两个数之和
注释和代码如下:
class Solution {
public:
vector<vector<int>> generate(int num) {
vector<vector<int>> y;
if(num <=0)
return y;
y.push_back({1}); //第一行
for(int i = 1;i < num; i++ )
{ vector<int> mi;
mi.push_back(1); //第一个数,先放一个1
for( int j = 0; j < y[i-1].size()-1;j++)
{
mi.push_back(y[i-1][j]+y[i-1][j+1]); //上一行两数相加
}
mi.push_back(1); 最后一个数,放一个1
y.push_back( mi);
}
return y;
}
};