- 博客(3)
- 收藏
- 关注
原创 通过二叉树去学习递归
通过二叉树去学习递归 递归其实就是一个自己调用自己的过程,起初自己在理解递归时总是企图去分析函数调用栈来理解递归的过程,一开始简单的递归函数还好分析,但遇到复杂的函数时候分析着分析着就乱套了。因此每次遇到复杂的递归函数总是令我头大,让我束手无策。后来通过写大量的简单的二叉树的题目让我对递归有了新的认识,在写递归时候不能总想着函数调用栈,这样会乱套,应该把重点放在函数的功能上,每一次的调用自己都在实现什么,是找叶节点还是某一个特殊的节点?递归总得有个结束自己的过程把,因此在函数在找到或者没有
2021-05-04 22:23:43
72
原创 初试KMP算法
初试KMP算法KMP算法是一种改进的字符串匹配算法,是利用已经匹配过的字符串信息,尽量减少模式串与主串的匹配次数。在匹配失败时,不用每次都从模式串的第一个字符开始匹配,而是可以利用已经求得的最长公共前缀去匹配它的下一个字符,时间复杂度为O(m+n)。 而暴力算法在匹配失败时,每次都从模式串的第一个字符开始重新匹配,完全没有利用已经匹配过字符串的信息,效率比较低,时间复杂度为O(m*n)。A B C A A B C D0 0 0 1 1 2 3
2021-04-22 15:58:54
115
2
原创 二分查找通用模板
超简单超实用的二分查找通用模板 这两天在学习二分查找,一开始天真地以为非常简单,只要找到一个数后直接返回即可。后来去刷题时发现二分查找还有很多种情况要去处理,比如说在一个有序数组中查找第一个大于等于某个数的位置或者小于等于某个数的位置等等。此时,就需要细心的判断退出条件以及更换左右节点的情况了,比较麻烦。在看了大量的视频后,学会了一个简单易懂并且通用的模板,特此记录一下。 left和right一开始指向的位置可能和在其他地方看到的初始位置不同,本模板的left和right指向的数都是
2021-04-19 14:16:37
121
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人