数据结构与算法
文章平均质量分 79
学习数据结构与算法
Evan_L
这个作者很懒,什么都没留下…
展开
-
数据结构与算法-单调栈
前言今天刷题的时候,碰到个新的名词——单调栈。于是过来一探究竟。单调栈栈中的元素呈现线性递增/递减。看起来很简单也很容易理解。但这背后有更深层的意义。单调递增栈:栈中每个元素的左边元素都比其自身小,而右边的元素都比其自身大。单调递减栈:栈中每个元素的左边元素都比其自身大,而右边元素都比起自身小。但这有啥意义呢?就其本身而言,好像也起不到太大的作用。但是如果是在一个更大的数组中,寻找其单调栈呢?例如在一个更大的数组中,寻找一个单调递增栈,那栈中的元素意味着什么?意味着,我们可以通过单调栈找到原原创 2021-05-15 22:26:03 · 258 阅读 · 0 评论 -
从零开始学Java-Hash冲突的解决方案与ThreadLocalMap的hash
前言上回只讲了Hash函数的几种算法。然鹅,再好的hash算法,在实际使用中也只能是尽可能地减少hash碰撞。那么如果发生了hash碰撞,该怎么办呢?这就是今天要讨论的问题。hash冲突的解决方案链地址法开放定址法再hash法公共溢出区链地址法使用链表结构,将发生hash冲突的key,通过链表存储起来。JDK在HashMap中,就使用了这种处理。只不过出于对查询性能的考虑,当hash碰撞达到8的时候,就转为红黑树(对于可比较的key有很好的效果)。开放定址法当发生hash冲突时,试原创 2021-05-12 23:51:24 · 645 阅读 · 0 评论 -
数据结构与算法-树
前言一道二叉查找树的中序遍历,戳中知识点盲区。怎么说呢,我对二叉树的理解,只停留在,有左孩和右孩的程度。。于是来认识一下树。树在计算机科学中,树是一种抽象数据类型或是实现这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。具有如下特点:没有父节点的节点,称为根节点。每个节点有零个或多个子节点。其中,没有子节点(零个)称为叶子节点。每个非根节点,有且仅有一个父节点。除了根节点外,每个子节点都可以分为多个不相交的子树。树的术语节点的度:节点的子节点(子树)数量。树的度:原创 2021-05-09 22:55:10 · 591 阅读 · 0 评论