- 博客(10)
- 收藏
- 关注
原创 代码随想录训练营Day 04 | 链表Part 02(8.31)
这题又又又用到了双指针——快慢指针的使用,主要是注意题目已经提及是“倒数”,所以需要遍历到最后一个节点,然后依次往前推,那么如果使用了两个指针,就直接控制好两个指针之间的间隔,然后同时往后遍历,直到快指针所指向的节点为NULL时才停止移动,而这一题还有一点需要注意的就是我们删除节点的相关操作,一定要指向前一个节点,也就是我们在这一题中需要让间隔大1,或者是快指针先走一步,否则在删除节点的时候会出错,这一题的代码直接引用代码随想录上的参考代码,不再另行列出,主要还是理解思路。②不存在环,是一个单独的节点;
2024-09-01 04:51:06
927
原创 代码随想录训练营Day 03 | 链表Part 01(8.30)
⑤将一个值为val的节点插入到链表下标为index的节点之前⑥删除下标为index的节点这一题的代码我在力扣上没提交,因为测试中一直报错emmm后续再研究研究。
2024-09-01 00:03:57
1160
原创 代码随想录训练营Day 02 | 数组Part 02
而这一题的双指针法,又和之前两题的双指针法有所不同,这里的一个指针,指的是终止位置,而是不断地移动起始位置,这样才能通过一个for循环来实现,而如何移动起始位置便是这里的精华所在,也是重难点所在。这一题我在思考的时候被卡住了,但回过头去看题目就会发现题目已经告诉我们测试数据均为正整数,所以不存在负数,也就不用考虑数值反向变大的可能,这个也是因为我受到了其中一题最小序列和的影响,这个题目在后续应该也会出现,到时候再把两题拿出来对比对比。关于旋转,到底需要绕几圈,为何是n/2圈,请看图。
2024-08-29 15:46:41
853
原创 代码随想录训练营Day 02 | 数组Part 01 双指针法拓展题
这一道题,有序数组的平方,首先如果是一个有序的正整数数组平方的排序,它的位置是不会改变的,但是题目并没有说数据是在正整数范围内的,那么就需要考虑出现负数的情况,而如果出现了负数,负数的排序肯定是在正数前面的,但是它的平方并不一定,这个时候我们最容易想到的就是先将所有数进行平方,然后再对平方后的数组进行排序,其实这在一定程度上也是对时间的浪费。具体的可以看一下下面的流程,两边的指针并不是同时移动,有可能头指针连续移动,尾指针不动,也可能尾指针连续一定,头指针不动。这里是需要特别注意最后两个指针的情况的。
2024-08-29 12:11:53
675
原创 代码随想录训练营Day01 | 数组Part01
在总结我今天的学习成果之前,我认为有必要再学习一下数组的底层逻辑,在下面的(移除元素)这一块会涉及到。数组的底层逻辑,在讲解到删除元素的时候,想要删除某一个元素,实际上的空间是删除不掉了,只能通过覆盖的方式进行。我以下表进行举例描述:元素123456下标012345例如在这一个表中,我想要删除元素3,正常来说就是应该将元素3以后的所有元素依次前移,以达到覆盖/删除元素的效果,具体的“双指针法”在下面进行描述。
2024-08-28 12:36:41
1640
原创 Dijkstra算法自主透析学习——基于最短路径求解问题
最近根据一些习题,有了一些算法学习的方向,还没有学精,但通过不断的巩固和发现问题,也许能更好地让自己掌握其中的一些技巧。我这一次针对最近学的Dijkstra算法作讲解,这也是数据结构中有关于图论的一部分,我力求从一个非常通俗易懂的方式(也就是大白话,口语化)来阐述,既方便于自己后续复习,也方便阅读的读者能够更快明白我的想法,如存在问题,欢迎指出。
2024-07-24 18:54:02
1003
原创 串的基本操作-2(串连接、串插入、串删除)
做个举例,我要在目标串“12346”下标为3的位置前插入串“808”,最终的结果应该是“12380846”,就这个例子来说,字符46需要向后移动3位(串808的长度再-1),这个还是需要稍微理解一下(因为我自己最开始的时候也绕进去了)两部分实现,插入位置前的字符可以保持不动,但是插入位置后的我需要先将字符往后移,然后进行插入,如果我先插入后移动,原有的数据就覆盖掉了。最后,解释一下串插入部分的一个小点,就是参数的传递是单向传递的,在函数内部改变形参的值不会修改实参的值,所以使用了指针传递。
2024-04-14 20:10:55
1311
1
原创 串的基本操作-1(求串长、判空串、串赋值、串比较)详解
①假设以字符串s为abcd,字符串t为abdf为例传入,那么进入程序以后,前两个字符相同(也就是i从0到1的时候),到i=2的时候,便是判断c和d,c小于d,那么此刻满足if条件,所以返回的是可能是正数也可能是负数(此题返回的应该是负数,则表明的是字符串s<t);②假设以字符串s和t都为abcd,那么在for循环语句里就没有满足if语句的时候,最后退出循环的时候,即返回两个字符串长度的值(此处为0);上面的数组便是用来存储串的数据,且定义字符总长不能超过MAXSIZE,可以根据实际情况调整。
2024-04-11 11:34:53
527
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人