![](https://img-blog.csdnimg.cn/cd290dddb28a41bb9e7c492cdfd374ed.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
算法题库、数据结构
文章平均质量分 77
数据结构
Enoch0813
Why not U? I'm possible
maybe not today,maybe not tomorrow...
展开
-
看完这篇文章你就彻底懂啦{保姆级讲解}-----(LeetCode刷题202快乐数) 2023.5.9
不进来看会后悔哦~原创 2023-05-09 20:18:40 · 538 阅读 · 0 评论 -
看完这篇文章你就彻底懂啦{保姆级讲解}-----(LeetCode刷题349两个数组的交集) 2023.5.9
不进来看会后悔哦~原创 2023-05-09 12:37:12 · 434 阅读 · 0 评论 -
看完这篇文章你就彻底懂啦{保姆级讲解}-----(LeetCode刷题242有效的字母异位词) 2023.4.25
不进来看会后悔哦~原创 2023-04-25 11:37:01 · 2228 阅读 · 0 评论 -
看完这篇文章你就彻底懂啦{保姆级讲解}-----(LeetCode刷题142环形链表II) 2023.4.24
不进来看会后悔哦~原创 2023-04-24 21:31:23 · 2257 阅读 · 0 评论 -
看完这篇文章你就彻底懂啦{保姆级讲解}-----(面试刷题链表相交) 2023.4.24
不进来看你会后悔哦~原创 2023-04-24 19:07:59 · 2183 阅读 · 0 评论 -
看完这篇文章你就彻底懂啦{保姆级讲解}-----(LeetCode刷题19删除链表的倒数第N个节点) 2023.4.23
不进来看会后悔哦~原创 2023-04-23 19:00:15 · 1915 阅读 · 0 评论 -
看完这篇文章你就彻底懂啦{保姆级讲解}-----(LeetCode刷题24两两交换链表中的节点) 2023.4.23
不进来你会后悔哦~原创 2023-04-23 17:02:40 · 1934 阅读 · 0 评论 -
看完这篇文章你就彻底懂啦{保姆级讲解}-----(LeetCode刷题203.707.206翻转链表) 2023.4.21
不进来看会后悔哦~原创 2023-04-21 15:20:22 · 2784 阅读 · 0 评论 -
看完这篇文章你就彻底懂啦{保姆级讲解}-----(LeetCode刷题59螺旋矩阵II) 2023.4.20
不进来看会后悔哦~原创 2023-04-21 00:14:52 · 2881 阅读 · 0 评论 -
看完这篇文章你就彻底懂啦{保姆级讲解}-----(LeetCode刷题209长度最小的子数组) 2023.4.20
不进来看会后悔哦~原创 2023-04-20 22:19:07 · 2395 阅读 · 0 评论 -
看完这篇文章你就彻底懂啦{保姆级讲解}-----(LeetCode刷题977有序数组的平方) 2023.4.20
不进来看会后悔哦~原创 2023-04-20 19:54:21 · 2751 阅读 · 0 评论 -
看完这篇文章你就彻底懂啦{保姆级讲解}-----(LeetCode刷题27移除元素) 2023.4.18
不进来看会后悔哦~原创 2023-04-19 00:17:23 · 2757 阅读 · 0 评论 -
看完这篇文章你就彻底懂啦{保姆级讲解}-----(LeetCode刷题704、35、34数组二分查找) 2023.4.17
不进来看你会后悔的~~~原创 2023-04-17 13:27:53 · 2790 阅读 · 0 评论 -
队列的链式存储--- 2021.10.27
上一讲链接:队列的基本概念— 2021.10.8队列的链式存储:什么叫队列的链式存储呢?我们在上一讲都知道队列的结构特点,那么我们可不可以通过链表来实现栈,从而实现了队列的链式存储。那么接下来我们一起来探讨吧!!!那我们现在先思考一个问题:链表的头节点是做队头还是做队尾?由于队列具备先进先出的特性,所以我们在插入数据和删除数据时总是会从队头出,从队尾入。所以链表的头节点做队头比较合适。接下来就开始根据代码具体分析://初始化队列LinkQueue init_LinkQueue(){ s原创 2021-10-27 16:57:11 · 142 阅读 · 0 评论 -
队列的顺序存储--- 2021.10.8
上一讲链接:队列的基本概念— 2021.10.8队列的顺序存储:什么叫队列的顺序存储呢?我们在上一讲都知道队列的结构特点,那么我们可不可以通过数组或者在下一讲会提到的链表来实现栈,从而实现了队列的顺序存储。那么接下来我们一起来探讨吧!!!那我们现在先思考一个问题:数组首地址是做队头还是做队尾?其实我们数组首地址不管是做队头还是队尾,我们最终都需要访问到队头元素,访问完后继续访问下一个元素,直到访问到队尾元素为止,所以在队列中数组首地址是做队头的。接下来就开始根据代码具体分析://初始化队列原创 2021-10-08 16:12:55 · 115 阅读 · 0 评论 -
队列的基本概念--- 2021.10.8
队列是什么?首先队列属于先进先出的数据结构,那什么叫先进先出呢?为了让大家更好的理解,这里给大家举一个生动的例子:我们在食堂打饭时,往往会进行排队,在这个队伍的首端也就是第一个打饭的,往往打完后会第一个出来,同理最后一个打饭的即最后一个出来。这就是先进先出的方式,即我们本讲提到的队列。同时为了让大家更好的了解该数据结构,特意给大家做了一张图供大家观看。由上图可知,我们可以类似于上述提到的食堂打饭的示例,即第一个打饭的该操作为入队,打完饭出来该操作叫做出队,其他队列元素以此类推。由于入队操作是从该队原创 2021-10-08 14:54:24 · 191 阅读 · 0 评论 -
栈的链式存储 --- 2021.9.3
上一讲链接:栈的顺序存储 — 2021.9.3栈的链式存储:什么叫栈的链式存储呢?我们在上一讲讲解了栈的顺序存储,自然而然,我们接下来可以进行栈的链式存储设计。那么接下来我们一起来探讨吧!!!为了让大家更好的理解,特意画了一张图供大家观看:那我们现在先思考一个问题:链表头节点是做栈顶还是做栈底?正常情况下链表头节点是要做栈顶,原因是当做栈顶时,由于栈的先入后出的原则,在入栈时只需要进行头插即可,出栈时只需要进行头删即可,此时就不需要去维护链表的尾节点了。接下来就开始根据代码具体分析:/*原创 2021-09-03 18:00:43 · 127 阅读 · 0 评论 -
栈的顺序存储 --- 2021.9.3
上一讲链接:栈的基本概念— 2021.9.2栈的顺序存储:什么叫栈的顺序存储呢?我们在上一讲都知道栈的结构特点,那么我们可不可以通过数组或者在下一讲会提到的链表来实现栈,从而实现了栈的顺序存储。那么接下来我们一起来探讨吧!!!为了让大家更好的理解,特意画了一张图供大家观看:那我们现在先思考一个问题:数组首地址是做栈顶还是做栈底?首先我们都知道数组是连续的,那么如果数组首地址做栈顶的话,那么当第一个数组元素入栈后,作为该栈的栈顶,那么当第二个数组元素入栈后,由于栈的先进后出的原则和数组连续的,原创 2021-09-03 11:05:20 · 115 阅读 · 0 评论 -
栈的基本概念--- 2021.9.2
在面试过程中,总是会涉及到基于链表或者数组的算法设计,其中针对于栈和数组又衍生出一种数据结构,即我们本文将会提到的“栈”。接下来我会详细讲解。栈是什么?首先栈属于先进后出的数据结构,那什么叫先进后出呢?首先我们先把栈想象成一种容器,该容器和我们平常生活中使用的水杯一样,杯底是封闭的,只会留有杯口。那么此时栈要存放第一个数据,随后第二个数据依次往杯口存放,但是最后想要从杯口拿取数据时,往往第一个数据是最后一个出来的,即理论意义上的先进后出。自然而然,流进杯口和流出杯口相对应的有专业术语,即入栈和出栈。原创 2021-09-02 20:04:15 · 192 阅读 · 0 评论 -
链表删除、清空和销毁-----2021-08-30
上一讲链接:链表初始化、插入、遍历功能实现----2021-08-17链表的删除和销毁:在前几讲中我们分别进行了链表的初始化、插入和遍历。那么接下来我们一起来探讨下链表的删除、按照值来删除链表中数据和销毁。链表的删除(按位置删除)先上代码:void removeByPos_LinkList(LinkList list,int pos){ if(list==NULL) { return; } struct LList * mylist = list; if(pos<0 ||原创 2021-08-30 17:56:09 · 2039 阅读 · 1 评论 -
链表初始化、插入、遍历功能实现----2021-08-17
单向链表:在前几讲中,我们对动态数组进行了讲解,在讲解链表之前我觉得还是需要清楚的知道动态数组和链表之间的区别和联系,为之后对链表的操作打好基础。首先,动态数组是在堆区开发的一个连续可拓展的内存区域,链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。至于链表内部的组成结构我们后面再进行讲解。所以这里有必要先对这两者之间进行优点和缺点的比较。动态数组的优点:无需为线性表中的逻辑关系增加额外的空间。可以快速的获取表中合法位置的元素。动态数组的缺原创 2021-08-30 10:13:39 · 2579 阅读 · 2 评论 -
动态数组删除和销毁----2021-08-10
上一讲链接:动态数组的删除和销毁:在前几讲中我们分别进行了动态数组的初始化、插入和遍历。那么接下来我们一起来探讨下动态数组的删除、按照值来删除数组中数据和销毁。动态数组的删除先上代码:void removeByPos_dynamicArray(struct dynamicArray * arr, int pos){ if (arr == NULL) { return; } if (pos < 0 || pos >arr->m_Size - 1) { retu原创 2021-08-15 21:59:37 · 1024 阅读 · 0 评论 -
动态数组插入和遍历--- 2021-08-09
上一讲链接:动态数组初始化实现— 2021-08-08动态数组的插入:首先我们需要知道设计动态数组的初衷是防止当数组中的元素大小达到了该数组的最大容量值时,也就意味着此时再想往该数组中插入新元素时是不能满足的,所以动态数组设计到堆区就是这个原因。那在上一讲中,我们只是进行了动态数组的初始化,并没有向该数组中插入新元素,所以接下来开始分析代码:void insert_dynamicArray(struct dynamicArray * arr, int pos, void * data){ if原创 2021-08-15 21:29:50 · 395 阅读 · 0 评论 -
动态数组初始化实现--- 2021-08-08
前言首先我们在学习语言时或者在有些公司面试时总是会看到数据结构和算法这两个概念。但是这两个概念总不是以单一的角色出现,往往会以数据结构和算法来相称。其实是有一定的道理的。数据:数据顾名思义,我们经常会与其打交道,当今社会各种各样的数据充斥在我们的周围,那数据的定义是什么呢?数据是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。数据不仅仅包括整型、实型等数值类型,还包括字符及声音、图像、视频等非数值类型。其实上面的关于数据的定义比较晦涩难懂,其实我们可以这样理解:数据是应用在计算原创 2021-08-08 22:24:38 · 708 阅读 · 1 评论 -
数据结构(指针)实例分析---2020.3.5
前言“指针是c语言的灵魂”开始解析就单片机来说,首先我们需要清楚一个问题,那就是在哪里来存储数据?单片机存储数据有两个区域,分别是RAM(随机存储器)、ROM(只读存储器)。一般RAM这个区域是用来存放临时变量的,所以一般这种区域的数据掉电之后数据会丢失。所以我们在程序中定义的变量一般都会存放在RAM这个区域。接下来通过一段代码让大家来清楚的了解为什么用指针,怎么用的。//该函数作用返...原创 2020-03-05 11:06:25 · 271 阅读 · 0 评论 -
LeetCode刷题258----各位相加 2020.2.20
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/add-digits/submissions/给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。示例:输入: 38 输出: 2 解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2。 由于 2 是一位数,所以返回 2。题解:int addD...原创 2020-02-20 19:35:58 · 260 阅读 · 0 评论 -
算法篇基础学习 ----(时间复杂度)2020.2.19
参考网址:https://mp.weixin.qq.com/s/070nYGokM96aorZn6MZTDA1.时间复杂度是学习算法的基石。2.随着问题的规模n趋于无穷时,函数中对函数结果影响最大的项,也就是最高次项。3.时间复杂度大小比较4.化简后的函数可以近似的代表原来函数的总体趋势。5.时间复杂度可以表示某个算法的运行时间趋势,大致的度量算法效率的好坏。6.7.最内层执行次...原创 2020-02-19 21:38:14 · 209 阅读 · 0 评论 -
求质数(素数)的方法——厄拉多塞筛法(转载) ---2020.2.18
质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。换句话说,只有两个正因数(1和自己)的自然数即为素数。比1大但不是素数的数称为合数。1和0既非素数也非合数。合数是由若干个质数相乘而得到的。所以,质数是合数的基础,没有质数就没有合数。【1】一般方法素数是除了1和它本身之外再不能被其他数整除的自然数。由于找不到一个通项公式来表示所有的素数,所以对于数学家来说...转载 2020-02-18 19:48:43 · 1079 阅读 · 0 评论 -
LeetCode刷题7----整数翻转 2020.2.4
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/reverse-integer给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意:假设我们的环境只能存储得下 32 位的有符号...原创 2020-02-04 19:22:27 · 222 阅读 · 0 评论