- 博客(9)
- 收藏
- 关注
原创 代码随想录
注意:我的很多思路都会在代码中的注释中显示,因此要注意看代码,当然,前面的文章更会透漏我的思路。主要·是栈的一些应用和细节的处理。今天的内容比较简单,但是还是可以再进行一些优化。主要是栈的一些典型的特性吧,相邻,或者一一匹配的问题还是可以想到用栈的。
2023-07-23 21:37:12
136
原创 代码随想录
/ tt表示栈顶 int stk [ N ] , tt = 0;// 向栈顶插入一个数 stk [ ++ tt ] = x;// 从栈顶弹出一个数 tt --;// 栈顶的值 stk [ tt ];// 判断栈是否为空,如果 tt > 0,则表示不为空 if(tt > 0) {数组模拟队列// hh 表示队头,tt表示队尾(插入和删除都是++操作) int q [ N ] , hh = 0 , tt = - 1;// 向队尾插入一个数 q [ ++ tt ] = x;
2023-07-23 10:12:30
271
原创 代码随想录
本章节我一刷直接费了好哒的功夫。给完成了。KMP算法理论:kmp算法解决的是字符串匹配的问题。给一个文本串,咱给一个模式串,探索文本串中是否出现模式串。暴力解法:两侧for循环挨个去匹配。在这里我们需要用到一个很重要的表:前缀表,虽然后缀我们也同样会用到接下来我说一下自己的重磅思路首先,我们来看一下暴力算法。i <= n;} } }(加粗只是为了分隔行,看的更清晰一点)
2023-07-21 16:48:36
285
1
原创 代码随想录
今天要学习的内容是字符串哈希:求哈希时:将每一个前缀的哈希值记录下来。1. 把字符串看成P进制的数。2.进制的数转换成十进制。3.模Q。。。注意。不能映射成零,且可能冲突,但是这里我们假定Rp足够好,不需要考虑冲突的情况。P=131或者1331.Q=2的64次方。字符串哈希不允许冲突的存在,而前面的哈希就允许。我们可以利用前缀的哈希求得所有需要的字段的哈希。接下来是一个模板思路核心思想:将字符串看成P进制数,P的经验值是131或13331,取这两个值的冲突概率低。
2023-07-20 09:43:56
569
1
原创 代码随想录
上一节总结的哈希的添加函数和查找函数非常的重要。模板还是要回上一章多看一看,多背过一下。快乐数这一题表现的尤为突出。剩下三道题可以和A+B的结合到一起,运用双指针法。以上就是今天要讲的内容,哈希这一章就要告一段落了。再抄一下前言吧,感觉总结的也很到位:上一节总结的哈希的添加函数和查找函数非常的重要。模板还是要回上一章多看一看,多背过一下。快乐数这一题表现的尤为突出。剩下三道题可以和A+B的结合到一起,运用双指针法。
2023-07-18 17:08:55
680
1
原创 代码随想录
哈希表的一些基础理论知识需要先掌握:首先哈希表能解决什么问题呢?一般哈希表都是用来快速判断一个元素是否出现集合里。相比暴力算法的O(n)复杂度,运用哈希表只需要O(1)即可。运用哈希表需要我们将信息映射到哈希表上,这设计到了hash function,即哈希函数。,这个过程中,我们可以通过hashCode将数据信息转化为数值。但是哈希法也是牺牲了空间换取了时间,因为我们要使用额外的数组,set或者是map来存放数据,才能实现快速的查找。
2023-07-18 09:42:45
93
1
原创 代码随想录
今天的内容非常的丰富,可以认真的品味`这一次刷题的任务还是蛮多的,花费了较长的时间,其中第二道题目非常的基础实用,更需要注意自己的写题。接下来就好好消化一下吧。加油。
2023-07-15 19:54:44
122
1
原创 代码随想录
今天完成的是对数组内容部分的首尾。前两道题目吗仍然涉及到双指针算法,第三道题目则是运用到二维前缀和部分的相关知识。今天刷的题目总结了很多,不过很多还没有完全理解下来,还需要再巩固一下。还是有些力不从心,不过状态也好多了。
2023-07-13 22:28:39
390
1
原创 LeetCode算法刷题
本文将分享自己学习二分查找和移除元素的经验对于本题目,我们双指针一先一后,先指针fast用来记录新数组将要获得的元素,而后指针slow用来记录新数组元素将要存放的地址:思路:1.遍历,找出需要移除的元素位置。**替换:从数组的后面寻找元素替换。1)当前数组最后一个元素仍需要移除则更新数组元素后继续前移。2)当最后一个数组不需要移除,那就进行替换2.更新数组的长度,继续遍历以下是一个双指针的小模板。
2023-07-12 23:23:48
124
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人