自定义博客皮肤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)
  • 收藏
  • 关注

原创 第九天,kmp

用有限状态机来理解kmp,kmp就是让模式串在匹配失败时不用重头开始,找到一个能接纳一部分模式串的后缀来进行匹配,不过状态机还有这个kmp,我知之甚少。

2024-06-16 18:35:18 94

原创 第七天,反转字符串

这题也不难,实际上就是分区间进行字符串的翻转,边界问题是老生常谈了,在设计算法的时候想一想要维护的区间是闭区间还是开区间,头尾都闭还是单独闭一个,都要考虑清楚,然后进行参数传递,这题字符串string要取引用,不然函数内操作的只是一个副本,要取引用操作原本的字符串。还有一个细节,翻转会有两种情况,一种是k为3,还剩下4个,那么翻转三个,如果只剩下两个,那么就不能翻转k个了,就只能翻转剩下来的那两个。当剩下来的字符数大于k个时,翻转k个,否则翻转剩下来的字符数个。

2024-06-15 22:07:30 160

原创 第六天,哈希和双指针

这题是双指针的用法,先固定一个指针,后面用双指针对已经排序的数组进行遍历,注意对每个元素去重,如果每个元素都去重了,那么这个元组就被去重了。和三数之和类似,不过多了一个指针,先排序,然后固定两个指针,然后进行双指针遍历,去重。暴力是n四次方,但是我们可以划分为两个n的平方的削减时间复杂度。差不多,哈希简单映射一下,计数一下就完事了。

2024-06-15 12:28:42 173

原创 第五天,哈希表映射

这题我原本也是统计个数,然后统计完第一个数组后,遍历第二个数组,如果出现hash中值为0,则说明这个值为交集之一,但是数组1可能有三个2,数组二只有一个2,那么2虽然是交集之一,但是按照我的处理,2对应的值会被减到-2,所以要去重,大家都只有一个2,逻辑就没问题了。字符转化为数字的值为下标,出现的次数为值,先在s字符串中统计每个字符出现的次数,存储在hash_s中,然后统计t,存储在hash_t中,都统计结束后,遍历这两个hash中的一个,同时比对另一个,如果其中一个字母的出现的次数不同,那么就无效。

2024-06-14 16:27:50 251

原创 第四条,链表part2

这题的链表只有两种类型,一种是有连接点,一种没有,没有连接点的,不管怎么样,我们都要先将两个链表对齐,而且是尾部对齐,具体操作为如果链表a长度大于b, 大三个,那a就先走向三个节点,此时剩下的长度就都一样大了,这时候每走一步看看有没有相等,相等就找到了,一直到最后都不相等的话,那就是没有。龟兔赛跑,快指针两格,慢指针一格。

2024-06-13 16:56:17 217

原创 第三天,链表专题

这题关键就在于处理边界问题,指针什么时候为空,什么时候开始,在哪开始,什么时候结束,在哪结束,这得看循环具体是怎么处理的,这个循环逻辑是检查当前节点的下一个节点的值,如果是val,那么下一个节点删除,指针指向下下一个节点,初始化cur节点指向头结点而不是直接将cur等于头结点,这作用为链表中所有节点都为cur->next,第一个节点是虚拟节点的下一个,最后一个节点也可以删,下一个节点是null。

2024-06-08 20:05:44 194

原创 第二天,数组,双指针和模拟

设置两个指针,刚开始r指向0,即数组的的第一个数字,然后l指向-1,即数组的前一个(后面会有解释),我们统计子数组,先遍历r这个指针,r遍历完就结束,在遍历每一个r的情况的时候,我们调整l,满足的区间长度都是多少,每次遍历r的时候,sum都在变大,因为r和l表示的是区间的左右边界,求满足的区间的时候,我们可以依次缩减区间的长度,即把l往后移,如果移一次还满足,就再移一次,依次往复,直到不满足,这时候一个r对应的所有满足的区间就都找到了,在更新的时候的具体逻辑决定了我为何把l设置为-1。

2024-06-07 14:36:21 151

原创 代码随想录第一天,数组基础知识和二分查找

这题阅读题目,题意为,给定val,将val全部去除,然后数组只剩下了其他值,如果要这样按照题意实现的话,可能不太现实,因为数组是个连续的内存单元,我们没办法将某一个内存去除,所以这个题目提交的要求就是,去除val后的数组长度,就是答案的判定范围,所以我们只需要将不满足val的值移到前面。众所周知,在单调的情况,如果我们在区间中选择一个点,那么这个点两边要不是全小于这个点,要不就全大于这个点,所以我们查找的时候,每次就查区间中点,然后每次分割为区间的一半进行查找。

2024-06-05 19:50:49 163 1

空空如也

空空如也

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

TA关注的人

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