您的位置:首页 > 编程语言 > C语言/C++

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;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ leetcode array