- 博客(4)
- 收藏
- 关注
原创 Day2-二叉树
写完了递归算法, 运行的时候,经常会遇到栈溢出的错误,就是没写终止条件或者终止条件写的不对,操作系统也是用一个栈的结构来保存每一层递归的信息,如果递归没有终止,操作系统的内存栈必然就会溢出。最后再说一说二叉树中深度优先和广度优先遍历实现方式,我们做二叉树相关题目,经常会使用递归的方式来实现深度优先遍历,也就是实现前中后序遍历,使用递归是比较方便的。而广度优先遍历的实现一般使用队列来实现,这也是队列先进先出的特点所决定的,因为需要先进先出的结构,才能一层一层的来遍历二叉树。确定每一层递归需要处理的信息。
2024-05-23 17:44:56 610 1
原创 Day1字符串
写过KMP的同学,一定都写过next数组,那么这个next数组究竟是个啥呢?next数组就是一个前缀表(prefix table)。前缀表是用来回退的,它记录了模式串与主串(文本串)不匹配的时候,模式串应该从哪里开始重新匹配。为了清楚地了解前缀表的来历,我们来举一个例子:要在文本串:aabaabaafa 中查找是否出现过一个模式串:aabaaf。请记住文本串和模式串的作用,对于理解下文很重要,要不然容易看懵。所以说三遍:要在文本串:aabaabaafa 中查找是否出现过一个模式串:aabaaf。
2024-05-20 17:53:20 567 1
原创 Day1 数据处理方法-链表
可以使用快慢指针法,分别定义 fast 和 slow 指针,从头结点出发,fast指针每次移动两个节点,slow指针每次移动一个节点,如果 fast 和 slow指针在途中相遇 ,说明这个链表有环。双指针方法,快指针要比慢指针快n+1步,当快指针遍历到队尾时,慢指针所处的位置就是需要删除的节点的前一个位置.直接连接到下下个节点。为什么fast 走两个节点,slow走一个节点,有环的话,一定会在环内相遇呢,而不是永远的错开呢。也就是在相遇节点处,定义一个指针index1,在头结点处定一个指针index2。
2024-05-20 14:26:12 966
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人