自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 广度优先搜索(BFS)--------钥匙和房间

依旧是广搜老表。

2026-03-04 02:39:09 31

原创 广度优先搜索(bfs)练习1--------寻找图中是否存在路径

今天开始做一些广搜的题目,相比深搜呢,模板代码变得更加多变,只有多做同类型的题目,进行总结,提取本质,才能随机应变。

2026-03-04 01:19:08 34

原创 深度优先搜索(DFS)练习2--------危险系数

1.首先在竞赛中,构建动态数组vector比如邻接表来实现问题是,应采用标准写法:main函数外面做声明定义,main函数内部做初始化,在邻接表这方面呢,应采用ret.assign(n,vector<int>())这种写法而不是ret.assign(n,vector<int>(m,0));,保证逻辑,后续Push_back正常使用;2.对于深度优先搜索,一般采用递归配合for循环的方式展开,针对无向图的问题,两条边之间的关系应该是双向互通的,也就是在邻接表赋值时写两次赋值语句;3.注意索引问题;

2026-03-03 20:01:59 30

原创 深度优先搜索(DFS)练习1--------排列序数

终于明白英雄哥那个经典slogen,的含金量了哈哈,晚上写真挺爽的,而且精力充沛不犯困,效率也高。

2026-03-02 23:00:22 51

原创 Prim算法练习

最近真的要紧张一点了,马上就要进行蓝桥杯的比赛了,这一阵子每天要养成刷题的习惯,将蓝桥杯这个比赛当做考试来进行,因为据我所知,它的题型并不新颖和创新,主要看对于算法的熟练程度和题型的熟练程度,所以加大题量,加油。

2026-02-28 23:52:59 62

原创 string课后练习

又是十天没有更新我的博客了,今天来整理一道string的题目,最近的强度和做题量都有所下降,真是美妙的寒假呀,来吧让我们看这道题目。

2026-02-23 23:52:50 84 2

原创 vector的扩容

许久没有写过博客了,今日有点雅兴,特意来写一篇,关于vector的一点东西。

2026-02-13 01:50:36 35

原创 哈希表练习1--------17.04.消失的数字

今天依然是有条不紊的学习数据结构,不知不觉接近尾声,下一步要学习STL和算法的相关知识了,加油,小魔丸别偷看了,好好休息。

2026-02-01 22:51:13 94

原创 邻接矩阵练习1--------LCP 07.传递信息

当我把手机的时间根据自己的起床时间调整以后,一切都变得奇妙起来了,我感觉这样真的蛮神圣的,先试试再说。

2026-01-26 00:50:50 180 2

原创 树的练习7--------LCR 052.递增顺序搜索树

今天这一题也是非常的憋屈,在递归上的运用可谓是得心应手,但是在一些小细节上却存在着致命的问题,现在来总结一下。

2026-01-20 21:56:16 314

原创 树的练习6--------98.验证二叉树

依旧被树和递归折磨中。。。刷刷刷。

2026-01-18 23:00:37 225

原创 树的练习6--------938.二叉搜索树的范围和

我的错误代码思路就是在左子树里面找到符合要求的值,然后在右子树里面找到符合要求的值,最后把他们加起来,但这个题目的思路应该是依此判断根节点左子树右子树,最后把他们三者加起来。其实我后来醒悟过来了,但是我在做的时候一直想不到应该怎么去改变我的代码去实现对应的功能。根据题目的要求的特定思路,建立适宜的代码,要求返回加和的这种,就需要在递归过程中返回加和的结果。递归的本质就是:当前节点的贡献+左子树的贡献+右子树的贡献,三者缺一不可。正确的做法应该是,找到符合条件的,就加起来继续往下找,

2026-01-18 21:16:32 231

原创 树的练习5--------654.最大二叉树

在家里的学习历程并没有我想象中的那么顺利和舒服,我不仅要重新适应学习的节奏,而且要费好多口舌去跟父母沟通交流,让他们理解我的行为和习惯,我还要找到一个适宜学习的安静舒适的地方,而且由于我们家的主流作息和学校宿舍的主流作息不同,我还要再次调整,要不然我将失去吃饭的权力,真是太悲哀了,我不禁感叹,学习不是一件难事,但是在生活中顾好其他事情的条件下坚持学习,形成良好的学习模式,真的是太难啦。

2026-01-18 17:02:46 330

原创 树的练习4--------1302.层数最深的叶子节点的和

这个题目真是让我做的好难受啊,不过也带来了许多收获,现在来总结一下。

2026-01-16 18:40:36 223

原创 树的练习3--------1022从根到叶的二进制数之和

前面做了一道题目,感觉已经摸到递归大道的门把手了,现在做这个题还是有点模糊,知道怎么去做,但是不知道怎么去实现,现在看完题解以后,又对递归多了一点理解。

2026-01-15 19:18:14 186 1

原创 树的练习2--------144二叉树的前序遍历

今天正式投入到如火如荼的训练当中,我一定要通过自己的努力,闯出自己的一片天,虽然现在仍有诸多不便,但我相信会越来越好的。今天的任务是完成二叉树部分的所有习题,加油!

2026-01-15 15:09:13 217 1

原创 树的练习1--------965单值二叉树

终于度过期末周啦,我要尽快把我的节奏调整过来,留给我的时间不多啦,我的学习和生活模式需要大改变,我需要通过自己清晰的头脑,让环境顺于我去发展,或者说我可以改变思路,改变自己去适应这个环境。

2026-01-15 00:34:23 246

原创 串练习--------2390.从字符串中移除*

这里我认识到,string类型的变量可以直接使用string库里面现成的接口,比如push_back(),pop_back(),其实与vector里面的接口是差不多的,所以以后可以直接用。我绞尽脑汁想到了用栈的思想来做这个题目,也算是非常简单的就写出来啦,但是string变量和char数组之间相互转化还是显得不太优雅,于是老师的解法让我茅塞顿开。

2025-12-21 10:35:59 153

原创 串练习--------535.TinyURL的加密和解密

异或‘^’可以对地址进行加密操作。

2025-12-19 22:37:37 177

原创 串练习--------1684.统计一致字符串的数目

利用bool变量来判断是否符合要求更加规整。

2025-12-19 18:23:32 173

原创 串练习--------首字母大写HDOJ2026

然后,每次输入时,由于fgets的特殊性,会输入一行内包含换行符的所有内容,并在末尾加上换行符,比如: hello World!\n\0,然后上次输入导致后续残留的内容就会被截断,前面的就会被覆盖,所以不用清空也无影响,然后是没有搞清楚strlen和sizeof分别代表什么,搞混了,sizeof求的是整个数组的存储空间,与内容无关,而strlen求的是字符串的长度。2.踩的坑:首先是没有暂存strlen的值,导致遍历时和输出时出现缺少内容问题,1.考察的知识点:字符串的输入输出。

2025-12-17 18:21:56 162

原创 串的练习--------统计汉字

这个题目的思路是,建立一个字符数组,然后利用n读取样例个数,然后利用getchar()消除换行符,然后利用while循环来输入和处理每一段字符串,在循环内部,首先利用fgets来输入字符串,然后,利用while循环遍历找到符合要求的值并统计个数,这里涉及到汉字机内码的特点,,又因为最高位是1的补码都是负数,所以可以判断是否小于零来找。然后getchar()负责销毁换行符,fgets(s,sizeof(s),stdin)用来输入字符串。这个题目本身不难,但是我的字符串部分十分薄弱,算是我的短板。

2025-12-16 22:33:17 239

原创 串的代码实现

在我看来串这个数据结构真是无聊,就是把<string>头文件可以实现的功能在类里面利用<cstring>头文件里面的函数来实现,真是无聊。:(

2025-12-16 12:23:02 897

原创 用队列实现栈

然后是出队函数,首先经过模板声明和函数声明,函数内部,首先判断first是否指向NULL,这代表链表为空,若为空则抛出异常,否则我们利用result变量暂存队首节点的数据,然后利用结构体指针curr暂存队首节点,然后偏移first,然后释放curr指向的内存,同时让链表的长度-1,然后判断链表的长度是否为0,若为0则使rear指针置为空,因为size为0后,代表所有的内存都被释放啦,那rear指向的内存当然也被释放啦,一定要置空rear,否则会变成野指针。然后是入栈函数,具体实现是将元素压入q1的队列中。

2025-12-14 22:59:39 387

原创 用栈实现队列

今天我的任务是首先利用一个小时完成用栈实现队列以及用队列实现栈的代码整理,并保证能够独立写出来,然后利用半小时的时间,完成串的概念以及代码的学习,然后去健身一个小时到一个半小时,然后利用半小时吃个饭,然后晚上七点半回来做牛客周赛,比赛结束后,利用一个小时学习概数。

2025-12-14 16:03:42 257

原创 队列练习--------最近的请求次数(LeetCode 933)

这个题目我最初并未看懂,看了老师以及评论区各位大神的题解才豁然开朗,我们要写一个类,这个类的功能很简单,就是用一个数组存储输入的值,然后用一个变量计数,每输入一次数就返回一次满足条件的个数,鉴于这个题目的特性,不满足的数出现在数组头部,而插入的数字又是从尾部,所以恰好符合队列的特性,于是这个题目利用队列我们可以有条不紊地解决,利用入队将元素存入队列,利用出队弹出不符合条件的数,返回队列的长度就是满足条件的元素个数。

2025-12-10 16:53:17 297

原创 新生赛--------D题.助教的比拼题解

已经很长一段时间没有写前言啦,今天看到自己的文章平均质量分只有50分,我想利用今天这个前言来反思一下自己,是不是最近的学习效率太低了呢,是否现在的学习状态还不足以支撑我拿到蓝桥杯国奖呢,现在四级考试,期末考试将近,我的时间分配是否合理呢,这越发引起我的深思,今天让我们来做一点简单的计划吧,我想先用半小时整理一下这道题目,然后休息十分钟,再学习半小时的概数,然后咱们再休息十分钟,再用二十分钟整理完昨天那道队列的题目,再休息十分钟,然后再用三十分钟背一个单元的单词,就可以去吃饭啦。

2025-12-10 14:52:20 379

原创 新生赛--------F题绝对值题解

可以优化的地方:这个题目虽然题目看起来很复杂,但其实做法很简单,它虽然要求求子序列中每个字段的绝对值的和的最大值的和,但其实最终每个字段的价值并排开是一个单调不减的数字段,所以,只要求出序列所有数字绝对值的前缀和,最后将每个数字相加即可,非常简单。代表从第i个元素到第i个元素的绝对值相加的和,即为[l, r]的价值;把这个子序列里所有可能的子段的价值算一遍,然后取最大的那个值。考察知识点:对题目的理解,对范围的把握。是这个子序列中所有子段的价值的最大值,是这个字段里面所有数的绝对值的和,

2025-12-09 12:37:03 711

原创 顺序表实现队列

然后是入队函数,经过模板声明和函数声明,函数声明部分,返回值类型为void,函数名,enqueue代表入队,然后参数列表为一个T类型的变量,代表待传入的元素,然后函数内部,首先判断数组是否还有空间,如果没有则调用扩容函数,然后在rear索引位即队列尾部插入元素,然后让rear指针向后偏移1位。具体函数实现部分,首先是扩容函数,经过模板声明和函数声明,与顺序表扩容原理一样,动态申请一个新的数组,把旧数组中的值传给新数组,然后删除旧数组对应的内存,然后让指针指向新的数组,同时容量更新。

2025-12-08 20:37:07 402

原创 栈练习--------从链表中移除节点(LeetCode 2487)

然后利用while循环,使这个链表串联起来,即让每个节点的next指针指向后者,最后一个节点指向NULL,(最后一个节点一定指向NULL,不用单独操作,最终数组的栈顶元素一定是初始链表的尾节点,一定指向NULL。在这几行语句中,我们要实现的操作是,将每一个节点传入栈中,但是在这之前,让待传入节点与栈顶元素作比较,如果大于栈顶元素,则弹出栈顶元素,重复判断和弹出操作,来实现对小节点的移除,最终栈就会变成一个单调不增的链表。

2025-12-05 11:24:57 206

原创 栈练习--------(LeetCode 739-每日温度)

具体思路就是,首先定义两个栈,一个用来存放最终的答案,一个用来暂存需要比较元素的索引,第一步咱们将答案栈的所有值赋值为0,然后利用for循环的遍历,先将第一个元素,暂存入stc栈中,然后将温度数组中的后续元素与之比较,如若大于,则将两元素索引差传入答案栈,并且弹出stc栈的栈顶元素,否则将其传入stc栈中,紧接着进入下一层循环,再将stc栈的栈顶元素与后续元素进行比较,与前面重复相同的操作。能爆发出无限的潜能,但我现在还不能想像出来,但这个题目给了我一点启发,但我学到的不只有这些。

2025-12-04 23:36:16 352

原创 栈练习--------有效的括号(LeetCode 20)

这个题目给我带来了栈的初步运用,因为我做之前那些题目一直觉得栈的存在感很低,跟链表和顺序表差不多,区分不开,现在这个题目恰恰体现了栈的作用,它不是一种底层的结构,它是一种思想。{}() , ({}) , {(}),这三个里面,传入一个元素后紧接着就可以和右括号匹配,第二个传入两个,随着弹栈,依然可以一一匹配,第三个恰好不行,妙哉。这个题目也叫做括号消消乐,我们的栈巧妙地解决这个问题,保证相同括号两两匹配,而且保证顺序正确。这个栈利用地精妙绝伦,精妙之处在于,它可以完美地完成括号的消消乐,我举个例子,

2025-12-03 19:55:38 322

原创 STL中栈的实现

首先就是添加一个属于栈容器头文件,只要有了它就可以直接使用STL中封装好的std::stack类,这样简直爽死,不用写那大串的代码,就可以直接使用,这就是C++相比C语言的魅力所在吧。这个模板类里面自带了一些函数,包括push,pop,top,empty.然后就可以直接使用对应的函数啦,在栈名后面加"."然后直接调用就好啦。

2025-12-01 15:53:07 136

原创 链表实现栈:具体函数实现

然后是入栈,函数返回值为void,像插入一样,无需返回值,然后就是带<T>的作用域,作为类模板的成员函数实现,参数列表为T类型的元素,代表待插入的元素,然后函数内部实现,我们采用头插法,将插入元素作为新的头节点,就如同插入位置为0一样,首先定义一个结构体指针指向一个新的结构体的内存空间,内存空间的作用域初始化为element,然后让这个新的节点指向头节点,然后将这个新的节点置为头节点,同时让链表长度加一。

2025-12-01 15:25:58 299

原创 链表实现栈:栈的类的声明

然后是类的具体实现,首先是私有权限的量,首先定义了一个结构体,命名为Node,然后结构体有两个成员变量,作为链表节点的数据域和指针域,然后是用初始化列表来初始化链表的节点。除了这个节点的结构体以外,还有链表的头节点和链表的长度。相比之前链表的实现,节点放在了类的里面,这样看起来就更加饱满啦。首先构造函数利用初始化列表初始化链表的成员变量,然后依次是析构函数,入栈函数,弹出函数,栈顶函数以及获取栈长度的函数声明。

2025-12-01 15:00:40 161

原创 顺序表实现栈:具体函数实现

然后是函数实现,首先定义一个新的内存大小,置为原本内存的两倍,然后定义一个T类型的指针,指向新申请的T类型的数组,然后数组的大小是新内存,紧接着用一个for循环,将旧数组中的值传给新数组,然后删除旧指针指向的旧数组,然后让这个旧指针指向新的数组,然后将新的内存大小赋值给旧的内存变量。首先是模板声明,然后函数声明,作用域加上<T>,作为类模板的成员函数实现,然后给类名前面加上~,作为析构函数,然后函数内部,我们直接删除这个顺序表。然后咱们让栈的长度减1,然后返回size对应索引位置的元素。

2025-12-01 12:21:42 318

原创 The Encounter of 我 and C++

因为当时有C的部分基础,所以我是从上述代码开始的,老师带我写了几行,我当时就感觉这个C++跟C的区别并不是很大,后来了解到C++是C语言的母集,看着如此简单的代码,我不禁沾沾自喜,谁知这还只是这门语言冰山一角中的一角。在我创建这个CSDN账号的时候,我立志要成为世界顶尖的程序员,如果说未来会有一道又一道关卡的话,C++将成为我最得力的武器和帮手,帮助我登上程序员的高峰。我明年要用C++来打竞赛,然后找一些简单的实习工作,然后到大三的时候,我将利用C++的相关逻辑来做项目,提升我的能力和水平。

2025-11-28 21:32:53 1659 1

原创 顺序表实现栈:栈的类的声明

经过这段时间的学习,咱们也是终于学到了栈这一部分,在这里,我们将继续沿用前面学习顺序表和链表的方法,来学习栈的相关知识。

2025-11-28 17:19:39 317

原创 单向链表反思题1

今天我开始意识到自己的一些问题在学数据结构期间,是这样的,由于数据结构与语言基础部分大不相同,所以学习方法和节奏也大相径庭,在基础部分,我习惯照搬老师的思路和模板来快速理解每一部分的知识,类似于嫁接,但是当我用这种方法来学数据结构时,我感到无力和乏味,因为数据结构相比基础部分来说,更加灵活,要求也更高,相比之下,以前想的是不需要理解太仔细太认真,只要会用就好了,忘记哪里就再温习一遍,但是数据结构部分却要求咱们逐字逐句地进行理解和灵活运用,并结合画图理解,所以说我今天总结了一些自己在学习数据结构部分的方法:1

2025-11-26 21:50:35 264

原创 单向链表--------练习11题解----递归相关

这个题目真的困扰了我好多好多天呢,因为刚开始学递归的关系,这个题目我仅看出需要使用递归,但是再往后嘛,不会进行别的变化和变通了,于是我参考了老师的解法,最终形成了自己的做法,首先定义一个函数,负责将所有节点实现翻倍操作,然后除头节点以外所有节点实现进位操作,(这一步我在参考老师做法之前也是可以实现的,并且一直卡在这里),然后咱们跳出这个函数,回到我们原本的函数,利用动态申请虚拟头节点实现对原头节点的进位操作,这样就完美了。

2025-11-25 11:37:18 290

空空如也

空空如也

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

TA关注的人

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