leetcode 118. Pascal's Triangle c++
2017-04-05 20:59
399 查看
首先要知道什么是Pascal triangle:
帕斯卡三角形,是一个三角形矩阵,其顶端是
1,视为(row0).第1行(row1)(1&1)两个1,这两个1是由他们上头左右两数之和 (不在三角形内的数视为0).依此类推产生第2行(row2):0+1=1;1+1=2;1+0=1.第3行(row3):0+1=1;1+2=3;
2+1=3;1+0=1. 循此法可以产生以下诸行。
class Solution {
public:
vector<vector<int>> generate(int numRows) {
vector<vector<int>> p;
if(numRows==0)return p;
vector<int > f(1,1);
p.push_back(f);
if (numRows==1)return p;
for(int i=2;i<=numRows;i++){
f.push_back(0);
vector<int> q=f;
for(int j=0;j<i;j++){
if(j==0)q[j]=f[j];
else q[j]=f[j-1]+f[j];
}
p.push_back(q);
f=q;
}
return p;
}
};
帕斯卡三角形,是一个三角形矩阵,其顶端是
1,视为(row0).第1行(row1)(1&1)两个1,这两个1是由他们上头左右两数之和 (不在三角形内的数视为0).依此类推产生第2行(row2):0+1=1;1+1=2;1+0=1.第3行(row3):0+1=1;1+2=3;
2+1=3;1+0=1. 循此法可以产生以下诸行。
class Solution {
public:
vector<vector<int>> generate(int numRows) {
vector<vector<int>> p;
if(numRows==0)return p;
vector<int > f(1,1);
p.push_back(f);
if (numRows==1)return p;
for(int i=2;i<=numRows;i++){
f.push_back(0);
vector<int> q=f;
for(int j=0;j<i;j++){
if(j==0)q[j]=f[j];
else q[j]=f[j-1]+f[j];
}
p.push_back(q);
f=q;
}
return p;
}
};
相关文章推荐
- LeetCode 之 Pascal's Triangle — C++ 实现
- 118. Pascal's Triangle LeetCode
- Leetcode 118. Pascal's Triangle (Easy) (cpp)
- Leetcode 118. Pascal's Triangle 杨辉三角 解题报告
- [leetcode]118. Pascal's Triangle
- [leetcode-118]Pascal's Triangle(c++)
- leetcode 118 Pascal's Triangle C++
- Leetcode题解 118. Pascal's Triangle
- Leetcode_c++: Pascal's Triangle(118)
- [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,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 OJ> 118./119. Pascal's Triangle(I / II)
- leetcode 118. Pascal's Triangle 解题报告
- LeetCode 118. Pascal's Triangle