题目:
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] ]思路:当前行的中间数字是上一行相邻数字相加,两边各一个1。注意考虑特殊情况(第一行和第二行的处理)
Attention: 注意考虑特殊情况(第一行和第二行的处理);定义Vector对象;处理非法的numRows输入;vector<vector<int>>的正确调用方式。
AC Code:
class Solution {
public:
vector<vector<int> > generate(int numRows) {
//给定行数,返回Pascal 三角形
//思路:当前行的中间数字是上一行相邻数字相加,两边各一个1。注意考虑特殊情况(第一行和第二行的处理)
//定义vector对象
vector<vector<int>> result;
//处理非法的numRows输入
if(numRows <= 0)
return result;
//定义内层vector,初始化第一行
vector<int> inner;
inner.push_back(1);
result.push_back(inner);
for(int i = 1; i < numRows; i++)
{
inner.clear();
inner.push_back(1);
for(int j = 1; j < i; j++)
{
//错误调用方法
//int trint = result[i-1].inner[j-1] + result[i-1].inner[j];
int trint = result[i-1][j-1] + result[i-1][j];
inner.push_back(trint);
}
inner.push_back(1);
result.push_back(inner);
}
return result;
}
};