leetcode:Pascal's Triangle
一、 题目
经典题目,杨辉三角,输入行数。生成杨辉三角的数组。
二、 分析
首先,我们知道有例如以下规律:
1、每一行的第一个数和最后一个数都为1
2、中间的数是上面数和上面数左边的数的和值
须要注意的是,当行数为0时输出[[1]]
结果为一个二维数组,所以不难想到解决方式。
每层保存前一行的指针,然后当前行数据依据上一行来得到,每一个元素就是上一行两个相邻元素相加(第一个和最后一个元素是1)。
算法时间复杂度应该是O(1+2+3+...+n)=O(n^2),空间上仅仅须要二维数组来存储结果。不须要额外空间。:
<span style="font-size:18px;">//方法一:
class Solution {
public:
vector<vector<int> > generate(int numRows) {
vector<vector<int>> cls;
for(int i=0;i < numRows;i++) {
vector<int> flag;
if(i<=0) //flag.push_back(1);
return cls;
else {
for(int j=0;j<=i;j++) {
if(j==0||j==i) flag.push_back(1);
else
flag.push_back(cls[i-1][j-1]+cls[i-1][j]);
}
}
cls.push_back(flag);
}
return cls;
}
}; //方法二:
class Solution {
public:
vector<vector<int>> generate(int numRows) {
vector<vector<int>> cls;
if(numRows<=0) return cls;
cls.push_back(vector<int>(1,1));
for(int i=1;i<numRows;i++) {
int cur_size = (int)cls[i-1].size();
vector<int> cur_ver;
cur_ver.push_back(1);
for(int j=1;j<cur_size;j++) {
int flag = cls[i-1][j]+cls[i-1][j-1];
cur_ver.push_back(flag);
}
cur_ver.push_back(1);
cls.push_back(cur_ver);
}
return cls;
}
}; </span>
leetcode:Pascal's Triangle的更多相关文章
- 【Leetcode】Pascal's Triangle II
Given an index k, return the kth row of the Pascal's triangle. For example, given k = 3, Return [1,3 ...
- leetcode笔记:Pascal's Triangle
一. 题目描写叙述 Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows ...
- LeetCode——Pascal's Triangle
Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5, Retu ...
- LeetCode——Pascal's Triangle II
Given an index k, return the kth row of the Pascal's triangle. For example, given k = 3, Return [1,3 ...
- 【leetcode】118. Pascal's Triangle
@requires_authorization @author johnsondu @create_time 2015.7.23 19:54 @url [Pascal's Triangle](http ...
- leetcode - Pascal's Triangle
Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5, Retu ...
- [LeetCode]Pascal's Triangle II
题目:给定一个行索引index,返回帕斯卡三角形第index层的三角形 算法:生成index层帕斯卡三角形,并返回第index层三角形 public class Solution { public L ...
- LeetCode118:Pascal's Triangle
Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5, Retu ...
- Pascal's Triangle I,II
题目来自于Leetcode https://leetcode.com/problems/pascals-triangle/ Given numRows, generate the first numR ...
随机推荐
- 【windows7】解决IIS 80端口占用问题(亲测)
1.默认你win机器已经安装并启用了80端口 2.现在你要安装并启用apache服务器 3.首先进行80端口占用检测:netstat -aon|findstr 80 4.找到进程号为404的服务名称, ...
- PHP代码优化之细节优化(转)
PHP 独特的语法混合了 C.Java.Perl 以及 PHP 自创新的语法.它可以比 CGI或者Perl更快速的执行动态网页.用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML ...
- 执行 maven 命令 报错Unable to add module to the current project as it is not of packaging type 'pom'[转]
今天学习在本地搭建Maven工程时,执行了mvn archetype:generate 命令,报错. Unable to create project from archetype [org.apac ...
- Linux-软件包管理-rpm命令管理-安装-卸载
mount 确认光盘是否挂载 mount /dev/cdrom /mnt/cdrom 将设备名称/dev/cdrom安装到/mnt/cdrom挂载点下面 mount 查看光盘是否已经挂载 (ro表示只 ...
- ASP.NET给DataGrid,Repeater等添加全选批量删除等功能
很多情况下,在管理或者查看列表的时候我们需要很需要“全选”这个功能,这在ASP.NET中是非常容易实现的,下面我就将演示一点小代码实现这一功能. 实现全选的还是js的一个小函数: [code] ...
- T-sql for xml path使用(转)
参考: http://www.cnblogs.com/langhua/p/4193161.html //用法: FOR XML PATH 方法是用于将查询结果集以XML形式展示 sql: p.Cont ...
- Cobertura + jenkins 单元测试代码覆盖率统计
1.新建一个maven工程,在src/main/java 下建一个CoverageTest.java 类 package test_junit; public class CoverageTest { ...
- sql server数据库查询超时报错
报错信息如下: 链接服务器"DBJointFrame"的 OLE DB 访问接口 "SQLNCLI10" 返回了消息 "查询超时已过期". ...
- dango models and database ---- relation ship
一.django自带的ORM中可以定义表与表之间的对应关系.现比较一下各个不同关系之间数据库端的实现 1.ForeignKey(ManyToOne)关系 from django.db import m ...
- Atitit.分布式远程调用 rpc rmi CORBA的关系
Atitit.分布式远程调用 rpc rmi CORBA的关系 1. 远程调用(包括rpc,rmi,rest)1 2. 分布式调用大体上就分为两类,RPC式的,REST式的1 3. RPC(远程 ...