题目描述:
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 numRows) {
vector<vector<int>> result;
if(numRows==0) return result;
else if(numRows>=1)
{
vector<int> first_row(1,1);
result.push_back(first_row);
for(int i=2;i<=numRows;i++)
{
vector<int> row(i,1);
for(int j=1;j<i-1;j++) row[j]=result.back()[j-1]+result.back()[j];
result.push_back(row);
}
}
return result;
}
};