![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 92
Zach要努力
慢慢进步
展开
-
数组和字符串学习笔记
原书链接:https://leetcode-cn.com/leetbook/detail/array-and-string/数组二分查找算是比较基础的算法了,这种用于已经排序好的数组中,题目 搜索插入位置便是对于该算法的考察。因为所查找的target可能不在数组中,这时候对于target位于队列最右端或者最左端的处理就比较关键了。高赞题解中的解题思路是:class Solution: def searchInsert(self, nums: List[int], target: int)原创 2021-03-29 17:51:59 · 152 阅读 · 0 评论 -
队列&栈学习
最近跟着LeetCode看算法相关知识,刚刚把队列&栈这一部分看完,稍微进行总结一下。队列队列简单来说就是先进先出的数据结构,在Python中虽然List也可以实现,但是效率没有使用collections中的deque效率高,所以实现时多使用deque。为了实现空间的有效利用,书中引入了循环队列:关于循环列表的构建,在【622. 设计循环队列】中给出了比较详细的过程。大致思路肯定是利用两个指针,一个指向head另一个指向tail,然后根据命令执行pop和push。官方在题解中说:原创 2021-03-03 22:50:32 · 201 阅读 · 0 评论 -
串之KMP模式匹配算法笔记
目录KMP的目标NEXT数组KMP的改进总结这应该算是《大话数据结构》这本书看到现在第一个需要想想的算法,准备认真的整理整理思路,不能一开始就掉队……KMP的目标先借用《大话数据结构》书中图片:首先定义长度大的字符串为主串 S[],需匹配的为 T[]。图中1-6是朴素模式匹配的步骤,但是可以发现,第1步之后第2步中的比较其实是没有必要的,因为在第1步后可以得出T[0]≠T[1]andS[1]=T[1]⇒T[0]≠S[1]T[0]\ne T[1] and S[1] = T[1] \Rightarro原创 2021-02-22 20:15:15 · 201 阅读 · 0 评论