5.28【A】

3093

如果是暴力法的话,就是维护当前匹配的最长长度,所匹配字符的最短总长度,以及其下标

每向后一位,首先去匹配,看匹配长度是否超过了最长长度,如果没有就continue

不过应该检查已匹配的是否是0,如果是就看当前的长度是否是最短的

这是一个三重循环,一定会超时

字典树的逻辑和操作是什么?对于26个英文字符,每层都维护26个节点,每个节点上要维护以这个为前缀的word的下标;按你说的,每个节点上还要维护一个bestId

但既然这个题的字典树不再需要插入或删除,所以在一开始建树的时候,或许就不用再维护所有相同前缀的下标,就只是保存最短的bestId

字典树就存到一个数组vector当中,一维的应该就行,0代表根节点,1-26代表第一层的26个分支

建树,怎么建,对于每个word,不断取它们的字符;

从0号开始,先到匹配到wordi-'a'上,之后呢?之后怎么匹配?就是找节点的流程是什么?

trie字典树的数据结构应该是怎样的?

一开始每个节点上的值,即bestId都是INT_MAX,然后build时每到一个节点,就bestId=min(INT_MAX,自己的size)

对于查询,基本和建树一样,就不断维护路径上的最大bestId就行了

那字典树的数据结构该是什么呢?对于每个节点,其都会有26个分支,那就是一个二维数组,表示其26个分支下,往下的下一个孩子节点的编号;然后在建树的时候,先查看对应分支上是否有值,或是-1,如果是的话,就新建一个树节点,即插入一个新元素,记录新元素的编号

然后bestId数组就是个一维数组,表示树节点的最短长度

然后遍历wordsContainer,对每个元素,反转后都从0号节点开始查,如果有,那就比较bestId,如果相同,就continue掉,因为已记录的一定是更早出现的

Allocator

内存块如何定义?每个块的大小都是固定的,那只需要维护首地址就行了吗?

那对于内部要维护的块,就用链表维护块的首地址

一个链表表示当前空闲的块

一个链表表示当前分配出去的块

不借助vector的话,链表如何表示?

那如果块之间的内存区间有重叠该怎么办?

就是说每个用户需求时,都从一个chunk块中直接分配,offset表示当前分配到哪了

然后reset就是把那个分配指针清0

不过如果有多个chunk,那在resset的时候,应该是要把所有的chunk的offset都标记为0的

相关推荐
葫三生29 分钟前
关于三生原理系列被技术开发社区批量收录或引发策展边界讨论的一种思考
大数据·人工智能·深度学习·算法·机器学习·数据挖掘·开源
catcatuncle29 分钟前
OpenWorkBuddy 部署排错手册:从源码启动到自己搭一个给团队用,七个最容易卡住的地方
算法
avi911132 分钟前
【AI教人】在Inspector显示所有Delegate-Odin Inspector之三
java·前端·算法·delegate·inspector·editor扩展·unity editor
淡海水37 分钟前
06-02-源码-增量标记算法实现
算法·unity·c#·gc
碧海银沙音频科技研究院1 小时前
实现炬芯ATS308X的usb cdc 串口IAP 固件升级功能实现
人工智能·嵌入式硬件·深度学习·算法
云淡风轻~窗明几净1 小时前
角谷猜想与百度AI的对话dialog(原始稿)
人工智能·算法·机器学习·图论
小O的算法实验室2 小时前
ASOC,分层分数阶粒子群算法+无人机电场路径规划
算法
重生之小比特2 小时前
【算法拾光】二分查找|搜索插入位置 + x 的平方根
算法
智购科技自动售卖机厂家2 小时前
双摄像头方案F1-score只有0.85,排查发现是上下视角的融合逻辑写反了~YH
python·单片机·嵌入式硬件·算法·eclipse
?abc!4 小时前
(动态规划+DFS)494. 目标和
算法·深度优先·动态规划