一、     题目

经典题目,杨辉三角,输入行数。生成杨辉三角的数组。

二、     分析

首先,我们知道有例如以下规律:

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&#39;s Triangle的更多相关文章

  1. 【Leetcode】Pascal&#39;s Triangle II

    Given an index k, return the kth row of the Pascal's triangle. For example, given k = 3, Return [1,3 ...

  2. leetcode笔记:Pascal&#39;s Triangle

    一. 题目描写叙述 Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows ...

  3. LeetCode——Pascal&#39;s Triangle

    Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5, Retu ...

  4. LeetCode——Pascal&#39;s Triangle II

    Given an index k, return the kth row of the Pascal's triangle. For example, given k = 3, Return [1,3 ...

  5. 【leetcode】118. Pascal&#39;s Triangle

    @requires_authorization @author johnsondu @create_time 2015.7.23 19:54 @url [Pascal's Triangle](http ...

  6. leetcode - Pascal&#39;s Triangle

    Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5, Retu ...

  7. [LeetCode]Pascal&#39;s Triangle II

    题目:给定一个行索引index,返回帕斯卡三角形第index层的三角形 算法:生成index层帕斯卡三角形,并返回第index层三角形 public class Solution { public L ...

  8. LeetCode118:Pascal&#39;s Triangle

    Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5, Retu ...

  9. Pascal&#39;s Triangle I,II

    题目来自于Leetcode https://leetcode.com/problems/pascals-triangle/ Given numRows, generate the first numR ...

随机推荐

  1. QtGui.QBrush

    The QtGui.QBrush is an elementary graphics object. It is used to paint the background of graphics sh ...

  2. 基于spring-boot的社区社交微信小程序,适合做脚手架、二次开发

    基于spring-boot的社区社交微信小程序,适合做脚手架.二次开发 代码地址如下:http://www.demodashi.com/demo/13867.html 1 概述 笔者做的一个后端基于s ...

  3. conn

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  4. 【Redis】redis 五种数据结构详解(string,list,set,zset,hash)

    redis 五种数据结构详解(string,list,set,zset,hash) Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存 ...

  5. VS Code - Debugger for Chrome调试js

    最近在自学一些s的内容,用到了vscode来编写代码,一直没有使用过vs调试js的代码,看到左侧有推荐一个插件Debugger for Chrome使用来调试js代码的,对于vs这种开源,需要安装各种 ...

  6. ffmpeg command

    1. 列出当前系统的设备列表 ffmpeg -list_devices true -f dshow -i dummy 2. 列出设备Integrated Camera的信息 ffmpeg -list_ ...

  7. js 温故而知新 用typeof 来判断一个未定义的变量

    一直以为,如果你使用一个未定义的变量,肯定会报错.甚至根本不可能有这种场景. 但仔细想想还是有的,譬如你要判断全局是否存在$变量.或者要为全局暴漏一个全局变量之前,先判断是否有这个变量. typeof ...

  8. Python 爬虫 去掉网页注释,去掉网页注释

    在爬虫中,我们遇到了网页注释的问题,这些内容,第一,耗费内存资源,第二,在解析网页的时候,不易匹配出来信息.那么我们该如何去掉他们呢??? 我们可以去使用正则去过滤掉他们 方法如下 result = ...

  9. android:Notification实现状态栏的通知

    在使用手机时,当有未接来电或者新短消息时,手机会给出响应的提示信息,这些提示信息一般会显示到手机屏幕的状态栏上. Android也提供了用于处理这些信息的类,它们是Notification和Notif ...

  10. 0067 MySQL的日期字段的取值用单引号

    这两天在做sql练习题http://www.cnblogs.com/zxx193/p/4000467.html的时候,涉及到下面的建表+插数据操作 CREATE TABLE t1( s_no VARC ...