自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 LeetCode 142. 环形链表 II

环形链表 II题目:给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。说明:不允许修改给定的链表。示例 1:输入:head = [3,2,0,-4], pos = 1输出:tail connects to ...

2019-12-26 15:11:21 289

原创 LeetCode 141. 环形链表

环形链表题目:给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。解题思路:题目要求简单,只需要判断有无环路,不需要找...

2019-12-26 12:57:43 133

原创 LeetCode160. 相交链表

相交链表题目:编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:在节点 c1 开始相交。注意:如果两个链表没有交点,返回 null.在返回结果后,两个链表仍须保持原有的结构。可假定整个链表结构中没有循环。程序尽量满足 O(n) 时间复杂度,且仅用 O(1) 内存。问题分析:题目很容易理解,注意一下问题,不能在原结构上修改,且链表中无环路,若有环路交点就不唯...

2019-12-25 23:00:18 135

原创 LeetCode 328. 奇偶链表

题目:奇偶链表给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。示例 1:输入: 1->2->3->4->5->NULL输出: 1->3-&...

2019-12-23 23:51:09 226

原创 魔术师发牌问题

魔术师发牌问题题目:魔术师利用一副牌中的13张黑牌,预先将它们排好后叠放在一起,牌面朝下。对观众说:“我不看牌,只数数就可以猜到每张牌是什么,我大声数,你们听,不信?现场演示。”魔术师将最上面的那张牌数为1,把他翻过来正好是黑桃A1,将黑桃A放在桌子上,第二次数1,2,将第一张牌放在这些牌的下面,将第二张牌翻过来,正好是黑桃2,也将它放在桌子上这样依次进行将13张牌全部翻出,准确无误。问...

2019-12-23 00:10:15 371

原创 约瑟夫环升级版

约瑟夫问题升级版题目:编号为1~N的N个人按顺时针方向围坐一圈,每个人持有一个密码(正整数,可以自由输入),开始人选一个正整数做为报数上限值M,从第一个人按顺时针方向自1开始顺序报数,报到M时停止报数。报M的人出列,将他的密码作为新的M值,从他顺时针方向上的下一个人开始从1报数,如此下去,直到所有人出列为止。...

2019-12-20 21:48:59 352

原创 约瑟夫环问题

约瑟夫环问题题目:问题分析:问题中41个人排成一圈,报数每报到第三个人该人必须自杀,把41个人看成一个链表,而且是一个单向循环链表,把每个人看做一个结点,其所在位置做为数据域position,每个人知道自己的下一个人是谁,为指针域。定义成员变量size记录剩余人数,接下来用结点的方式初始化该链表,用真实头结点方式来做,有多少人就创建多少结点,用循环方式。借助指针p遍历链表,p从第一个结点开始,...

2019-12-20 16:43:10 842 1

原创 数据结构与算法(十)循环链表

循环链表对于单链表,由于每个结点只存储了向后的指针,到了尾指针就停止了向后链的操作,将单链表中终端结点的指针由空指针改为指向头结点,就使整个单链表形成一个环,这种头尾相接的链表就称为单向循环链表,简称循环链表...

2019-12-19 20:51:22 246

原创 数据结构与算法(九)链队列——队列的链式存储结构

链队列队列的链式存储结构,其实就是线性表的单链表,只不过它只能它只能尾进头出而已,我们把它就称之为链队列。既然链队列和单链表一样,观察链队列LinkedQueue和单链表LinkedList的UML类图,可以看到两者之间是聚合关系,也就说LinkedQueue相当于LinkedList的成员变量,和我们的之前说的链栈是一样的既然如此,也是创建LinkedList对象list实现,调用li...

2019-12-19 17:04:15 2736

原创 数据结构与算法(八)链栈——栈的链式存储结构

链栈栈的链式存储结构简称链栈,对链栈来说基本不存在栈满的情况,除非内存已经没有可以使用的空间链栈其实也是线性表的单链表,只不过它是只能栈顶进出元素(线性表的表尾),我们看一下单链表和链栈的UML类图,LinkedList与LinkedStack是聚合关系,聚合关系是关联的一种形式,代表两个类之间的整体/局部关系。聚合暗示着整体在概念上处于比局部更高的一个级别,而关联暗示两个类在概念上位于相同的...

2019-12-19 16:25:44 458

原创 数据结构与算法(七)单链表——线性表的链式存储结构

单链表数据在计算机中的存储形式有两种,顺序存储结构是把数据元素存放在地址连续的存储单元里,我们前面写的线性表、顺序栈、循环队列都是顺序存储结构,基于动态数组实现的,这个结构是占用连续的存储单元,比较浪费空间,把数据元素存放在任意的存储单元里,就可以充分的利用空间,这种存储结构就是链式存储结构。链式存储结构并不能反映数据元素之间的逻辑关系,因此需要 用一个指针存放数据元素的地址,这样地址就可以...

2019-12-18 23:33:01 636

原创 数据结构与算法(六)循环队列——顺序存储结构

循环队列先不急着给循环队列的定义,先看队列循环存储结构的弊端。队列顺序存储结构的弊端队列的顺序存储结构本身是由ArrayList实现的,在数据元素入队的时候,相当于在ArrayList表尾添加元素,在数据元素出队的时候,相当于在ArrayList表头删除元素。很明显,入队的时间复杂度O(1),出队的时间复杂度O(n),线性表增删数据元素时间复杂符都是O(n),但是这个是按平均算的。队列的出...

2019-12-17 19:35:17 492 1

原创 数据结构与算法(五)队列——顺序存储结构

队列队列的定义:是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。例如像移动,联通、电信等客服电话,客服人员与客户相比总是少数,在所以客服人员都占线的情况 下,客户被要求等待,直到某个客服人员空下来,才能让最先等待的客户接通电话,这里将所以当前拨打客服电话的客户进行排队处理。客服系统就是应用了队列这种数据结构。队列是一种先进先出的线性表,允许插入的一端称为队尾,允许删除的一端称为...

2019-12-16 21:22:29 262 1

原创 数据结构与算法(四)双端栈——顺序存储结构

双端栈双端栈定义:是指将一个线性表的两端当做栈底分别进行进栈出栈操作。双端栈

2019-12-16 20:46:16 320

原创 数据结构与算法(三)栈——顺序存储结构

栈说到栈,学了面向对象就很了解,面向对象说过的主函数进栈,构造函数进栈、构造函数弹栈,都是在对栈的操作,比如我们主函数先进栈,构造函数再 进栈,我们无法先将主函数弹栈,只能等构造函数弹栈后,再操作。由此就可以得到栈的定义:栈是限定仅在表尾进行插入和删除操作的线性表。栈这种后进先出数据结构的应用是非常普遍的,例如子弹夹,最后进入弹夹的子弹总是最先射出去。我们把允许插入和删除的一端称为栈顶(to...

2019-12-13 22:52:07 241

原创 数据结构与算法(二)线性表——顺序存储结构

线性表线性表(list):零个或多个数据元素的有限序列。举个例子:一个班的小朋友,一个跟着一个排队,当中的每个小朋友都知道他前面的是谁,后面的是谁,如同一根线把他们串联起来。就可以称之为线性表。给了线性表的定义,分析一下线性表写哪些什么操作,从属性和行为两个方面分析:属性方面:int size 线性表的有效元素个数int capacity 线性表的最大容量E[] data...

2019-12-13 13:52:55 300 1

原创 数据结构与算法(一)逻辑结构、物理结构、时间复杂度

数据结构数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科。为什么要学习数据结构?学习数据结构学习的是逻辑思维和抽象思维的能力。程序设计=数据结构+算法,底层和源码的开发更是离不开数据结构。想要学的更深入就要学习数据结构。什么是数据结构?数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。数据结构的逻辑结构与物理结构数据结构的...

2019-12-12 23:54:56 974

原创 LeetCode26. 删除排序数组中的重复项

题目:删除排序数组中的重复项给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。分析:首先明确一下题目,题中给的是排好序的数组,这个很关键,还有虽然最后要求返回删掉重复项的数组长度,但是还是要把最终数组显示出来,不然还是会报错,然后想一下,这个题可以用双...

2019-12-12 16:00:53 113 1

原创 Java基础十八(异常)

异常什么是异常?程序运行时期发生的问题就是异常首先看一下我们之前学习遇到的一些也是比较常见的异常数组角标越界ArrayIndexOutofBoundsException空指针异常NullPointerException栈溢出异常StackOverFlowError堆溢出异常OutofHeapError类型转换异常ClassCastException...

2019-12-11 10:39:58 126 1

原创 Java基础十七(内部类)

内部类为什么会有内部类?在描述事物,若一个事物内部还包含其他可能包含的事物,比如在描述汽车时,汽车中还包含这发动机这个事物,这时发动机就可以使用内部类来描述。即就是内部事物必须寄宿在外部事物内部。class Outer{ //外部类的成员变量 int num = 5; //写在Outer成员位置上的内部类 class Inne...

2019-12-11 09:17:09 122

原创 Java基础十六(多态、向上转型、向下转型)

多态多态的前提就是继承,多态的字面意思是同一个事物在不同的场合具有不同的形态。多态:父类的引用或者接口的引用指向了自己的子类对象。//父类的引用指向一个子类的对象Fu f=new Zi();例子:abstract class Animal{ //由于每一个小动物的eat方式都不一样,因此只能使用抽象方法描述,从而导致这个类也为抽象类 abstract...

2019-12-10 16:20:32 189

原创 Java基础十五(抽象类、接口)

抽象类在我们定义一些子类的是发现其中有相同行为那么可以将这些相同的行为抽取出到父类有一个问题就是,这些行为只能由具体的子类去实现,但是放到父类中,不符合基本逻辑,我们不能以偏概全 ,所以父类当中中的这个函数就不能具体实现,不能有具体的函数体 ,所以讲该函数定义为抽象函数,函数具体如何实现 由子类决定,重写决定 。那么,具有抽象函数的类 就称之为抽象类当定义了抽象函数的类也必须被abstract...

2019-12-06 16:54:02 141

原创 Java基础十四(继承)

继承为什么要使用继承代码演示描述多个事物。多个事物之间发现有共同的属性和行为。可以将相同的代码进行抽取,抽取出来后放在单独的类中,为了让类与类之间能有关系,需要使用Java中提供的继承这种机制。继承需要用到关键字extends。继承的定义从代码上而言:在我们描述若干个类的时候,发现这些类中有大部分相同的成员所以就可以把这部分重复的内容抽取出来,用另外一个类描述,新的类就是父类 ,其他...

2019-12-05 14:46:41 141 1

原创 Java基础十三(代码块、单例模式)

代码块静态代码块静态代码块随着类的加载只执行一次,在加载类时,对类的内容进行一些初始化,做一些准备工作,在JDBC(链接数据库)技术中静态代码块就是事先链接数据库。构造代码块构造代码块随着对象的创建加载执行,功能等同与构造函数局部代码局部代码块就是函数中的一对{}for{}while{}if{}switch{}单例模式Java的设计模式有20+种,它们不是随着Java的...

2019-12-04 22:24:11 123

原创 Java基础十二(静态方法、静态变量和常量)

静态Java 支持静态方法和静态变量 。静态方法当在定义类的时候,类中都会有相应的属性和行为。而属性和行为都是通过创建本类对象调用的。如果创建对象调用方法,发现这个方法中没有使用到对象中的特有数据,那么创建该对象仅仅是为了调用方法,就显得这个对象创建很多余,这时可以使用static关键字修饰这个方法,这个方法被称为静态方法,可以通过类名的方式直接调用。什么时候使用静态修饰方法?定义功能时...

2019-12-02 19:50:51 314

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除