118. Pascal's Triangle
2016-04-05 18:48
295 查看
题目
Given numRows, generate the first numRows of Pascal's triangle.
For example, given numRows = 5,
Return
分析
初始化第1行,然后循环根据上一行创建当前行。
class Solution {
public:
vector<vector<int>> generate(int numRows) {
vector<vector<int>> vec(numRows);
if(numRows==0)
return vec;
vec[0].push_back(1);
for(int i=1;i<numRows;i++)//从第二行开始
{
vec[i].resize(i+1);//重建当前行容器的容量为当前下标+1
vec[i][0]=1;//初始化头结点
vec[i][i]=1;//初始化尾结点
for(int j=1;j<vec[i-1].size();j++)//根据上一行计算中间结点j
{
vec[i][j]=vec[i-1][j-1]+vec[i-1][j];//当前行第j个元素等于上一行第j-1+第j
}
}
return vec;
}
};
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行,然后循环根据上一行创建当前行。
class Solution {
public:
vector<vector<int>> generate(int numRows) {
vector<vector<int>> vec(numRows);
if(numRows==0)
return vec;
vec[0].push_back(1);
for(int i=1;i<numRows;i++)//从第二行开始
{
vec[i].resize(i+1);//重建当前行容器的容量为当前下标+1
vec[i][0]=1;//初始化头结点
vec[i][i]=1;//初始化尾结点
for(int j=1;j<vec[i-1].size();j++)//根据上一行计算中间结点j
{
vec[i][j]=vec[i-1][j-1]+vec[i-1][j];//当前行第j个元素等于上一行第j-1+第j
}
}
return vec;
}
};
相关文章推荐
- Coverity代码静态检测工具介绍
- 项目2-带武器的游戏角色
- rk3288的SDK修复cm3218光敏驱动bug
- 获取屏幕的高和宽度
- [BZOJ1070][SCOI2007]修车(费用流)
- 前端开发学习笔记01(大杂烩)
- 第五周 静态成员应用 23
- Linux文件重点概念
- 老男孩运维网络班一期入学试题
- Android简化获取控件
- 第五周第四项目——长方柱类
- 代码静态分析工具PC-LINT安装配置
- <构建之法> 第四章 结对 读后感
- Unity+百度推送+IOS版
- 游戏中的角色类1
- Xcode localization failed to read a strings file问题原因
- 第四周 20 时间类
- 使用JLink烧写u-boot(基于JZ2440v2的ARM板子)
- HDU 1108
- SQL tuning 类 的面试题