算法与数据结构
文章平均质量分 62
nemonobd
这个作者很懒,什么都没留下…
展开
-
HashMap源码逐行手撕 JDK11
HashMap基本介绍文章主要基于B站小刘老师讲解 以及 一些博客对HashMap的重要执行逻辑和流程进行分析(红黑树的细节部分并不包括)。源码基于JDK11。如有错误欢迎指正继承体系![image.png](https://img-blog.csdnimg.cn/img_convert/38c9ae2919d8f6b349a6aa088af0d180.png#clientId=u5dbff5cd-22c4-4&from=paste&id=u7b49ae4b&margin=[原创 2021-10-08 11:29:11 · 240 阅读 · 0 评论 -
栈?队列?Java ArrayDeque常用首尾操作方法整理
对于用Java刷leetcode的同学一定很眼熟ArrayDeque这个数据结构,因为它既可以作为队列也可以作为栈,解题时使用频率很高。补充一嘴,Stack也能作为栈来用,但是作为存在设计缺陷的Vector类的子类,已经不推荐使用了。ArrayDeque提供了作为栈的一套读写方式(pop/push/…),也提供了一套作为队列的读写方式(poll/offer/…),因此首尾操作方法非常多且从功能的角度看是重复的。使用时经常分不清到底该用哪个方法取数。到底这方法是对首操作还是对尾操作?读取的时候只是读取还是同原创 2021-05-30 08:24:13 · 435 阅读 · 0 评论 -
快慢指针法判断环入口位置 LeetCode142 环形链表2
快慢指针如何寻找环入口通过快慢指针思路来判断链表是否有环时,我们可以通过判断两个指针最终是否会相遇来确定。但是问题在于,这样得到的相遇点并不是环的入口,想要通过快慢指针来寻找环入口还需要做一些额外的处理。思路:参考LeetCode142题,在第一次相遇后,重新设置一个指向head的指针,然后重新让新指针与慢指针开始行动,每次移动距离都为1,这样一来下次相遇的点就是环入口了。代码实现见底部具体解释为什么两个指针再次相遇的地方就是环入口:将存在环的链表长度理解为a+b;a为非环的链表部分,b为环的长度原创 2021-05-20 04:04:09 · 537 阅读 · 0 评论