您的位置:首页 > 其它

118. Pascal's Triangle

2018-02-08 17:19 351 查看
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]

]

discuss

class Solution {
public:
vector<vector<int>> generate(int numRows) {
vector<vector<int>> result;
for(int i=0;i<numRows;i++)
{
result.push_back(vector<int>(i+1,1));
for(int j=1;j<=i-1;j++)//首尾的1不变
{
result[i][j]=result[i-1][j-1]+result[i-1][j];
}
}
return result;
}
};


方法一:从左向右

class Solution {
public:
vector<vector<int>> generate(int numRows) {
vector<vector<int>> result;
if(numRows==0)
return result;
//if(numRows==1)
result.push_back(vector<int>(1,1)); //一个1
for(int i=2;i<=numRows;i++)
{
vector<int> current(i,1);//当前行初始化为i个1
vector<int> &prev=result[i-2];//上一行
for(int j=1;j<i-1;j++)//首尾不变
{
current[j]=prev[j-1]+prev[j];
}
result.push_back(current);
}
return result;
}
};


方法二:从右向左

class Solution {
public:
vector<vector<int>> generate(int numRows) {
vector<vector<int>> result;
vector<int> array;
for(int i=1;i<=numRows;i++)
{
for(int j=i-2;j>0;j--)
{
array[j]=array[j-1]+array[j];
}
array.push_back(1);//i=1,2不执行循环
result.push_back(array);
}
return result;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: