写在前面:今天有两道KMP算法的题目,由于时间关系以及题目难度,先跳过
字符串总结
如果题目关键的部分直接用库函数就可以解决,建议不要使用库函数。
如果库函数仅仅是 解题过程中的一小部分,并且你已经很清楚这个库函数的内部实现原理的话,可以考虑使用库函数。
双指针法是字符串处理的常客。
KMP算法是字符串查找最重要的算法
双指针总结
该文中一共介绍了leetcode上九道使用双指针解决问题的经典题目,除了链表一些题目一定要使用双指针,其他题目都是使用双指针来提高效率,一般是将O(n^2)的时间复杂度,降为$O(n)$。
这里复习时发现自己对于142. 环形链表 II - 力扣(LeetCode)中入口的计算不是很清楚,其实是从n=1的情况推导出x=z,然后推广到n>1的情况,所以两个点分别从head和快慢指针相遇点出发,每次都移动一步,相遇的地方就是环的入口