首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
java数据结构
订阅
唐果果
更多收藏集
微信扫码分享
微信
新浪微博
QQ
30篇文章 · 0订阅
一次性解决三种背包问题
首先,大概讲一下什么是“背包”问题:背包问题是指你有一个容量为V的背包,然后有n个物品在你面前,你要怎么装才能使得背包里的物品总价值最大。而每种物品是只有1个,还是有多个,亦或是有无限个,这就是“01背包”、“多重背包”、“完全背包”的主要区别。 这里先打断一下,给自己一点时间…
【重学数据结构与算法(JS)】字符串匹配算法(四)——Sunday算法
Sunday算法也许是三种里面最好理解也最好写的一种了,它的思路也是在于失配时如何跳过尽可能多的字符,具体的说,主要是优化了第3步,失配时,在主串中找到一个合适的位置,重新与模式串进行比较。 如果移动后, m > slen ,说明 S 已经遍历一遍,仍然没有找到目标,模式串 匹…
数据结构之「B树」
B树(B-tree)是一种自平衡的树,能够保持数据有序。是一种专用的 M 阶树,最多有 M 个节点的自平衡树,与自平衡二叉查找树不同,B树 为系统大块数据的读写操作做了优化。B树 减少定位记录时所经历的中间过程,从而加快存取速度。这种数据结构常被应用在 数据库 和 文件系统 的…
树形数据结构总结二(AVL,2-3树,红黑树,B树,B+树)
AVL(平衡二叉树),它也是一种二分搜索树。它的特点是每个节点的左右子树之差不超过1。在某种特殊的情况下,普通的二分搜索树可能退化为链表,例如加入的元素顺序为1,2,3,4,5。这个时候查询的效率会从O(logn)退化为O(n)。而我们解决这种特定的情况就需要采用平衡二叉树来解…
太刺激了,面试官让我手写跳表,而我用两种实现方式吊打了TA!
你好,我是彤哥。 上一节,我们一起学习了关于跳表的理论知识,相信通过上一节的学习,你一定可以给面试官完完整整地讲清楚跳表的来龙去脉,甚至能够边讲边画图。 本节,我将通过两种方式手写跳表,并结合画图,彻底搞定跳表实现的细节。 第一种方式为跳表的通用实现,第二种方式为彤哥自己发明的…
拜托,面试别再问我堆(排序)了!
(2)堆中某个节点的值总是不大于(或不小于)其父节点的值。 其中,我们把根节点最大的堆叫做大顶堆,根节点最小的堆叫做小顶堆。 满二叉树是指所有层都达到最大节点数的二叉树。比如,下面这颗树: 完全二叉树是指除了最后一层其它层都达到最大节点数,且最后一层节点都靠左排列。比如,下面这…
死磕 java集合之ConcurrentSkipListSet源码分析——Set大汇总
ConcurrentSkipListSet底层是通过ConcurrentNavigableMap来实现的,它是一个有序的线程安全的集合。 它的源码比较简单,跟通过Map实现的Set基本是一致,只是多了一些取最近的元素的方法。 为了保持专栏的完整性,我还是贴一下源码,最后会对Se…
死磕 java集合之ArrayDeque源码分析
双端队列是一种特殊的队列,它的两端都可以进出元素,故而得名双端队列。 ArrayDeque是一种以数组方式实现的双端队列,它是非线程安全的。 通过继承体系可以看,ArrayDeque实现了Deque接口,Deque接口继承自Queue接口,它是对Queue的一种增强。 从属性我…
死磕 java集合之HashSet源码分析
集合,这个概念有点模糊。 广义上来讲,java中的集合是指java.util包下面的容器类,包括和Collection及Map相关的所有类。 中义上来讲,我们一般说集合特指java集合中的Collection相关的类,不包含Map相关的类。 狭义上来讲,数学上的集合是指不包含重…
谁说有序链表不能进行二分查找,只是需要进化而已?!
前言你好,我是彤哥。上一节,我们一起学习了关于哈希的一切,特别是哈希表的进化过程,相信通过上一节的学习,你一定可以从头到尾完整地给面试官讲讲哈希表是如何发展到如今这一步的。但是,难道HashMap的终