LeetCode 118. Pascal's Triangle
2016-08-14 18:45
309 查看
问题描述:
Given numRows, generate the first numRows of Pascal's triangle.
For example, given numRows = 5,
Return
分析:规律很简单,二维数组res。
第N行有N个元素,其中第一个和最后一个都是1,中间的数可由下列递推式求出
res[i][j] = res[i-1][j]+res[j-1]
numRows=1和numRows=2的情况单独考虑到就行了。
AC代码如下:
vector<vector<int>> generate(int numRows)
{
vector<vector<int> >res;
if(numRows == 0)
return res;
for(int i = 0;i<numRows;i++)
{
vector<int>row;
if(i == 0)//第一行只有一个1的情况
{
row.push_back(1);
res.push_back(row);
}
else if(i == 1)//第二行两个1 的情况
{
row.push_back(1);
row.push_back(1);
res.push_back(row);
}
else//大于2行的情况
{
row.push_back(1);//第一个1
for(int j = 1;j < i;j++)//中间的数用递推式求出
{
int temp= res[i-1][j]+res[i-1][j-1];
row.push_back(temp);
}
row.push_back(1);//最后一个1
res.push_back(row);
}
}
return res;
}
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] ]
分析:规律很简单,二维数组res。
第N行有N个元素,其中第一个和最后一个都是1,中间的数可由下列递推式求出
res[i][j] = res[i-1][j]+res[j-1]
numRows=1和numRows=2的情况单独考虑到就行了。
AC代码如下:
vector<vector<int>> generate(int numRows)
{
vector<vector<int> >res;
if(numRows == 0)
return res;
for(int i = 0;i<numRows;i++)
{
vector<int>row;
if(i == 0)//第一行只有一个1的情况
{
row.push_back(1);
res.push_back(row);
}
else if(i == 1)//第二行两个1 的情况
{
row.push_back(1);
row.push_back(1);
res.push_back(row);
}
else//大于2行的情况
{
row.push_back(1);//第一个1
for(int j = 1;j < i;j++)//中间的数用递推式求出
{
int temp= res[i-1][j]+res[i-1][j-1];
row.push_back(temp);
}
row.push_back(1);//最后一个1
res.push_back(row);
}
}
return res;
}
相关文章推荐
- [LeetCode]118. Pascal’s Triangle
- Leetcode-118. Pascal's Triangle
- LeetCode-118. Pascal's Triangle,119. Pascal's Triangle II
- Leetcode-118. Pascal's Triangle
- leetcode 118. Pascal's Triangle(杨辉三角)
- Leetcode 118. Pascal's Triangle
- leetcode 118. Pascal's Triangle 解题报告
- 【Leetcode】118. Pascal's Triangle
- LeetCode 118. Pascal's Triangle(帕斯卡三角)
- LeetCode 118. Pascal’s Triangle
- 【leetcode】118. Pascal's Triangle【java】
- [LeetCode]118. Pascal's Triangle
- LeetCode-118. Pascal's Triangle
- 【LeetCode】118. Pascal's Triangle
- LeetCode 118. Pascal's Triangle
- LeetCode118. Pascal's Triangle-python(easy)
- leetcode题解-118. Pascal's Triangle && 119. Pascal's Triangle II
- LeetCode-Array-118. Pascal's Triangle
- leetcode 118. Pascal's Triangle c++
- 【Leetcode】118. Pascal's Triangle