首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Yerlang
掘友等级
Java 开发工程师
天行健 地势坤 自强不息 厚德载物
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
3
文章 3
沸点 0
赞
3
返回
|
搜索文章
最新
热门
算法数据结构:Trie 树
Trie 树,也叫字典树。顾名思义,它就是一个树形结构,是一种专门处理字符串匹配的字典数据结构,用来解决在一组字符串集合中快速找到某个字符串的问题。 当然,这样一个问题可以有多种解决方法,比如散列表、红黑树等。但是 Trie 树在这个问题的解决上,有它的优点。Trie 树能解决…
算法数据结构:哈希算法
将任意长度的二进制值串映射为固定长度的二级制值串,这个映射的规则就是「哈希算法」,而通过原始数据映射之后得到的二进制值串就是哈希值。如何设计一个优秀的哈希算法呢? 哈希算法的应用非常非常多,这里列举了最常见的七个:安全加密、唯一标示、数据校验、散列函数、负载均衡、数据分片、分布…
算法数据结构:散列表
散列表(Hash Table)是实现字典操作的一种有效数据结构。用的是数组支持按照下标随机访数据的时候,时间复杂度为O(1)特性,所以散列表其实就是数组的一种扩展,由数组演化而来。一般我们也叫「哈希表」或者「Hash 表」。 我们通过散列函数把元素的键值映射为下标,然后将数据存…
算法数据结构:堆
「第一点」,堆必须是一个完全二叉树。完全二叉树又是什么呢?它是除了最后一层,其它层的结点个数都是满的,最后一层的结点都是靠左排列。 「第二点」,堆中的每个结点的值必须大于等于(或者小于等于)其子树中每个结点的值。实际上,我们还可以换一种说法,堆中每个结点的值都大于等于(或者小于…
算法数据结构:栈、队列的另类实现
有时还会遇到要求用两个栈实现队列的需求,具体代码实现如下。 举个例子:比如有人问你如何用栈结构实现广度优先搜索(BFS),众所周知,BFS 是利用队列来实现的,怎么只利用栈来实现 BFS 呢?其实这里我们完全是可以先利用两个栈实现一个队列,然后在用自己实现的队列,来完成 BFS…
算法数据结构:队列
队列,可以把它想象成排队买票,先来的先买,后来的后买,后来的人只能站末尾,不允许插队。先进者先出,这就是典型的「队列」。 我们知道,栈只支持两个基本操作:「入栈push」 和「出栈pop」。队列跟栈非常相似,支持的操作也很有限,最基本的操作也是两个:「入队queue」,放一个数…
算法数据结构:链表
相对比数组,链表是一种稍微复杂一点的数据结构,其学习成本也要比数组要高一些。数组和链表是两个非常基础,且非常常用的数据结构。而链表的结构也是五花八门的,本篇文章主要介绍:「单链表」、「双向链表」和「循环链表」。 从图中可以发现,数组需要一块连续的内存空间来存储,对内存的要求比较…
算法数据结构:栈
栈,可以想象成我们平时放盘子的时候,都是从下往上一个一个放;取得时候,是从上往下一个一个地依次取,不能从中间任意抽出。后进者先出,先进者后出(FILO),这就是典型的栈结构。这样的例子还有很多,比如:弹匣... 从栈的操作性上看,栈是一种操作受限的线性表,只允许在一端插入和删除…
算法数据结构:动态规划
动态规划(Dynamic Programming,DP)是运筹学的一个分支,是求解决策过程最优化的过程。 一个模型指的是,动态规划适合解决的问题的模型,我们把这个模型定义为多阶段决策最优解模型。 我们一般是用动态规划来解决最优问题,而解决问题的过程,需要经历多个决策阶段。每个决…
算法数据结构:深度优先搜索(DFS)
深度优先搜索用的是回溯思想,这种思想解决问题的过程,非常适合用递归来实现;换句话说,DFS 是借助栈来实现的。 举个栗子,假设你站在迷宫的某个岔路口,然后想找到出口。你随意选择一个岔路口来走,走着走着发现走不通的时候,你就回退到上一个岔路口,重新选择一条路继续走,直到最终找到出…
下一页
个人成就
文章被点赞
26
文章被阅读
17,026
掘力值
560
关注了
2
关注者
8
收藏集
0
关注标签
83
加入于
2020-05-05