自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 约瑟夫环问题--不同存储结构对应的不同解法

约瑟夫环问题是一个很经典的问题:有M个人,编号分别为1到M,玩约瑟夫环游戏,最初时按编号顺序排成队列;每遍游戏开始时,有一个正整数报数密码N,队列中人依次围坐成一圈,从队首的人开始报数,报到N的人出列,然后再从出列的下一人开始重新报数,报到N的人出列;重复这一过程,直至所有人出列,完成一遍游戏,所有出列的人形成新队列;游戏可能玩很多遍,每遍有新报数密码。求若干遍游戏完成后队列次序。本题要求使用单链表实现,程序要求采用模块化设计,格式规范,有合适注解。

2024-09-14 15:06:32 542

原创 单调队列--滑动窗口最大值(leetcode23)

单调队列是一种特殊的队列数据结构,它能够在常数时间内找到队列中的最值。单调队列可以用来解决一些与最值相关的问题,例如滑动窗口最大值、滑动窗口最小值(即由于维护一个输入序列中指定区间的最值)。单调队列的主要操作有两个:添加元素和移除元素。添加元素时,我们需要保持队列的单调性,即保证在添加新元素后,队列仍然是递增(或递减)的。为了实现这一点,我们可以将新元素与队尾元素进行比较,如果新元素大于(或小于)队尾元素,则将队尾元素移除,直到队列保持单调性为止。移除元素时,我们只需要判断队首元素是否需要移除即可。

2024-08-28 14:55:13 1174

原创 leetcode707--设计链表(数据结构--链表的基础知识)

对于delete函数,我选择找到要删除结点的前一个结点,但初始的遍历指针却是从头节点(虚拟头节点的下一个)开始的,设想一下这样的话如果要删除的就是头节点,那怎么能找到他的前一个结点呢?2.由于是完成一个类,因此我将虚拟头节点放入private中,设置nums这个变量是为了方便判断index是否越界。// 现在,链表变为 1->3。1.设不设虚拟头结点都可以,但一般而言设虚拟头节点会更方便,操作更统一。你可以选择使用单链表或者双链表,设计并实现自己的链表。是指向下一个节点的指针/引用。

2024-08-23 20:39:09 1008

原创 leetcode203--移除链表元素

本题较为简单,值得一提的是为了保证头节点的处理与其他结点一致,常会加一个虚拟头节点dummyhead(本题中我用的是ans表示)。此外,由于C++没有自动内存管理,所以在确定一个结点是要删除的结点时应该delete掉,题目比较简单,就不再赘述了,有疑问的话欢迎大家评论或私聊交流呦^O^时间复杂度如下图,可以看出时间很快,嘎嘎(๑•̀ㅂ•́)و✧。如果当前结点不符合要求,才需要后移指针。,请你删除链表中所有满足。给你一个链表的头节点。

2024-08-23 14:47:53 303

原创 leetcode3--Longest Substring Without Repeating Characters(无重复字符的最长子串)【滑动窗口】

正如标题所述,该题会用到滑动窗口的思想,那么什么是滑动窗口以及什么时候使用呢?顾名思义,滑动窗口就是可滑动的窗口,这里的窗口即代表所包含的子串,滑动代表所包含的子串可以依次滑动(一般都是从左到右滑动),我们只需要创建两个指针(广义指针,并非术语指针)来表示窗口的左右边框,就可以表示该滑动窗口。那创建完窗口后怎么操作捏?让右指针先右移1,判断现在的子串是否符合题目要求。如果符合右指针就继续右移;如果不符合左指针右移1,并判断现在是否符合,不符合则继续移动。//以下是该模板伪代码。

2024-08-14 12:17:19 1089

原创 leetcode2--add two numbers(两数之和)

思路为对应位相加,用flag数组存进位信息,ans数组存每个位处理后的数值,处理每个位包括两种情况:一个是低位进1该位加1,一个是该位要进位减10。处理完每个位后还要注意最高位的进位:如果最高位有进位的话是要产生一个新的最高位。最开始的想法是将两个链表给的信息转化为整数,再将两个整数相加,最后将和转化为一个链表。最后想说的一点是对两个链表的处理,如果两个链表等长,那没啥好说的。先处理两个链表均不为空的部分,再处理剩下的部分。在力扣中,这道题结点数在【1,100】内,因此ans数组可设的比100大点。

2024-08-12 10:14:14 379

空空如也

空空如也

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

TA关注的人

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