题目:
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] ]
思路:
每一层的第i个位置,等于上一层第i-1与第i个位置之和。
程序:
class Solution {
public:
vector<vector<int>> generate(int numRows) {
vector<vector<int> > ret;
if(numRows == 0)
return ret;
vector<int> last(1,1);
ret.push_back(last);
for(int i = 2; i <= numRows; i ++)
{
last.push_back(0);
vector<int> cur = last;
for(int j = 1; j < i; j ++)
{
cur[j] = last[j] + last[j-1];
}
ret.push_back(cur);
last = cur;
}
return ret;
}
};