首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
算法和数据结构
订阅
韓淇
更多收藏集
微信扫码分享
微信
新浪微博
QQ
11篇文章 · 0订阅
一文讲透一致性哈希的原理和实现
为什么需要一致性哈希 首先介绍一下什么是哈希 Hash,一般翻译做散列,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。
看动画轻松理解「递归」与「动态规划」
在学习「数据结构和算法」的过程中,因为人习惯了平铺直叙的思维方式,所以「递归」与「动态规划」这种带循环概念(绕来绕去)的往往是相对比较难以理解的两个抽象知识点。 程序员小吴打算使用动画的形式来帮助理解「递归」,然后通过「递归」的概念延伸至理解「动态规划」算法思想。 先下定义:递…
看动画理解「链表」实现LRU缓存淘汰算法
前几节学习了「链表」、「时间与空间复杂度」的概念,本节将结合「循环链表」、「双向链表」与 「用空间换时间的设计思想」来设计一个很有意思的缓存淘汰策略:LRU缓存淘汰算法。 如上图所示:单链表的尾结点指针指向空地址,表示这就是最后的结点了。而循环链表的尾结点指针是指向链表的头结点…
数据结构与算法-链表(下)
承接上文,解决普通链表查找的问题。首先分析问题的瓶颈,对于查找,自然是从头开始顺序查找到尾部,那么怎么才能更快查找到目标元素呢?将链表中的元素排序可以加速查找过程,但仍需要顺序查找。因此,链表最好允许跳过某些节点,以避免顺序处理。基于以上思路,提出跳跃链表的概念。跳跃链表是有序…
看动画轻松理解时间复杂度(一)
算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,比如排序就有前面的十大经典排序和几种奇葩排序,虽然结果相同,但在过程中消耗的资源和时间却会有很大的区别,比如快速排序与猴子排序:)。 主要还是从算法所…
5分钟带你领略:某跳动公司面试出镜率最高的算法之一——虚拟十叉树建模问题
首先,这个确实不是标题党,接下来我保证讲的都是硬干货。也许有人会觉得非常偏非常难非常怪,但是我要说的是,对于技术社区来讲,系统知识理论的学习自有去处,我觉得社区里面应该注入一些新的血液,分享一些有信息量的内容,而不是将明明已经整理得非常好的知识点翻来覆去地“炒现饭”并以此来占据…
知多一点二进制中的负数
hello~亲爱的看官老爷们新年好~相信不少同学知道,如果要将一个数字转换为它的相反数,在 Javascript 中,除了在它前面加个-号之外,还可以对该数字进行取反,之后再加 1。前者(本质是 0 减去对应的数字)可以得到相反数,完全符合我们的直觉,但为何取反加一也可以,这看…
算法--我的红黑树学习过程
在研究集合类源码的时候,发现Map,Set里面不少用到红黑树,为了能够更顺利的学习源码。我决定把红黑树知识恶补一下。如果不了解树、二叉树、平衡二叉树定义的同学先了解一下这些前提知识。 由于能力时间有限,我就不复述学习资料里大神写的内容了。关于一些基础知识和概念请大家先读一遍学习…
聊一聊前端算法面试——递归
现在竞争越来越激烈,今天来聊一聊前端面试中出现频率非常高的一种算法思想——「递归」。 如下图所示:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish…
数据结构与算法-链表(上)
数组适合处理确定长度的,对于插入或者删除不敏感的数据。如果数据是频繁变化的,就需要选择其他数据结构了。链表是一种逻辑简单的、实用的数据结构,几乎被所有程序设计语言支持。我们从最简单的链式结构开始,根据需求的变化一步步改进,满足产品需求。 单向链表是由一个个节点组成的,每个节点是…