首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
数据结构
订阅
_羊羽_
更多收藏集
微信扫码分享
微信
新浪微博
QQ
29篇文章 · 0订阅
Trie树的基本原理及应用
在做用户 query 理解的过程中,有许多需要使用词典来"识别"的过程。在此期间,就避免不了使用 Trie 树这一数据结构。 因此今天我们来深入的学习一下 Trie 树相关的理论知识,并且动手编码实现。 下面的定义引自维基百科。 从上面的图中,我们可以发现一些 Trie 的特性…
数据结构之跳表
文中附代码实现. 电梯直达 在公众号回复 【跳表】 也可以获取哦。 from. 维基百科 线性表这种数据有两种具体实现, 数组和链表。具体的内容之前的文章里也有说过,可以翻翻看哇~。在这里两种数据结构中,数组的优点是查找速度快,而链表的优点是增删的效率高,这也是我们常说的。其实…
Boyer-Moore 算法
最详细的讲解,没有之一!
剑指offer解析-上(Java实现)
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 暴力方法是遍历一遍二维数组,找到target就返回true,时间复杂度为O(M * …
字符串查找算法总结(暴力匹配、KMP 算法、Boyer-Moore 算法和 Sunday 算法)
可进入我的博客查看原文。 字符串匹配是字符串的一种基本操作:给定一个长度为 M 的文本和一个长度为 N 的模式串,在文本中找到一个和该模式相符的子字符串,并返回该字字符串在文本中的位置。 KMP 算法,全称是 Knuth-Morris-Pratt 算法,以三个发明者命名,开头的…
LSM树原理探究
B+树随着mysql Innodb引擎的广泛推广越来越被大家所熟知,而前不久我在研究Raft算法时,偶然发现了一种和B+树类似的数据结构——LSM树(Log-Structured-Merge-Tree 日志结构合并树),它是Google发表的论文 Big Table 中提到的一…
一文看懂递归
最近看了不少递归的文章,收获不小,不过我发现大部分网上的讲递归的文章都不太全面,主要的问题在于解题后大部分都没有给出相应的时间/空间复杂度,而时间/空间复杂度是算法的重要考量!递归算法的时间复杂度普遍比较难(需要用到归纳法等),换句话说,如果能解决递归的算法复杂度,其他算法题题…
跳跃表的基本概念以及代码实现详解
所谓跳跃表,就是在普通链表的基础上增加了多层索引链表,这样在查找时就可以通过在上下不同层级的索引链表间跳跃,以达到快速查找的目的。 当然,我这样说可能比较抽象,下面我用一张图来简单解释一下。 从上面这张图可以看出,跳跃表有三种不同的对象。 此外,数据链表还有一个特点,那就是它是…
[算法总结] 13 道题搞定 BAT 面试——字符串
1. KMP 算法 谈到字符串问题,不得不提的就是 KMP 算法,它是用来解决字符串查找的问题,可以在一个字符串(S)中查找一个子串(W)出现的位置。KMP 算法把字符匹配的时间复杂度缩小到 O(m+n) ,而空间复杂度也只有O(m)。因为“暴力搜索”的方法会反复回溯主串,导致…
一文教你学会递归解题
最近看了不少递归的文章,收获不小,不过我发现大部分网上的讲递归的文章都不太全面,主要的问题在于解题后大部分都没有给出相应的时间/空间复杂度,而时间/空间复杂度是算法的重要考量!递归算法的时间复杂度普遍比较难(需要用到归纳法等),换句话说,如果能解决递归的算法复杂度,其他算法题题…