自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 找出数组中只出现一次的数字

找出只出现一次的数字。

2023-11-24 00:11:31 46 1

原创 双指针的妙用

还是使用双指针的来解决问题,slow和fast依次加1,当array[slow] = array[fast]时,slow停下,直到array[fast]!该思路也是设置left、right两指针同时靠拢,当array[left] = val 时直接与array[right]对换,此时left先不+1,而是判断交换过来的val是否等于val,再重复上步骤;问题描述:提供一个数组array和一个值val,将数组中的val值移除并最后返回数组长度(不使用O(1)的额外空间,数组的顺序可以改变)

2023-11-23 23:54:07 28

原创 数据结构之数组

数组作为线性表的基本结构,其特点是各个元素都紧密的挨在一起(在内存中存储在连续的空间中),且数据类型相同,占用的内存大小也相同;数组的下标从0开始,到length - 1;

2023-11-19 00:51:15 28

原创 链表反转问题二

先记录断开前的pre,第二段断开前的rightNode,以及第二段断开后的下一个节点suc,记录反转的第一个节点为leftNode = pre.next,使用穿针引线法反转,随之pre -> rightNode -> pre.next -> suc,注意,此处第三部没有用leftNode而是用pre.next,是因为在遍历的最后面,leftNode = suc了,而pre的next并没有变,所以可以先连接起后面的,再把前面的连起来。①:cur、next(next指向cur,temp指向next)交换。

2023-11-06 23:33:21 37 1

原创 链表反转问题

单项链表反转之所以吃力,就是因为方向只有从头节点往后,若先操作前面的节点,中间就会断开,除非像用。定义虚拟节点,然后依次从链表中。都记录下来,然后各节点的next就很方便操作了。把所有的节点存起来,然后通过弹栈从后面更换方向。在虚拟节点后,最后可得虚拟节点的next为。遍历链表,初始化指针指向。递归也类似,类似于使用。,遍历完成后指针指向新的head。本文就三种方法实现链表的反转。

2023-10-28 01:38:10 42 1

原创 链表中环的问题

如上图,|XY| = a,|YZ| = b,|ZY| = c,设环的长度d = |YZ| + |ZY| = b + c。其中n和m分别是相遇前和第二次同速度开始跑的fast在环中跑的次数,可以看出,当b < d,这时fast会比一开始的时候少走一圈;换成字母描述,满指针slow,快指针fast,slow和fast同时从x出发,在z点。,快指针必定在环的某个节点上,此时快指针则会一步一步的向慢指针追去,,慢指针每次走一步,快指针每次走两步,若链表存在环,则快慢指针必会。,然后两指针分别于头节点和相遇节点以。

2023-10-27 00:43:05 47 1

原创 链表之第一个公共子节点

∴ length(a + b + c) = length(c + b + a) 且 无a、b、c无交集。使用四种方法,Hash、栈、链表拼接、差和四种方法解决寻找两链表第一个公共子节点问题。使用hash结构,如java中的HashSet,先将第一个链表的节点。输入两个链表,已知两个链表在相交处会形成单链表,求相交点的值;,弹出的数据作比较,若相等则用临时变量保存,然后继续弹栈,直到。使用栈来找出公共子节点,首先得先创建。,所以会从最后一个节点开始比较,此时,两个栈。,节约空间,但要注意的是,需要在。

2023-10-22 23:18:31 46 1

原创 数据结构之链表

简要叙述链表结构

2023-10-19 00:35:24 147

空空如也

空空如也

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

TA关注的人

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