文件名称:leetcode打不开-autocomplete-system-design:自动完成系统设计
文件大小:2.39MB
文件格式:ZIP
更新时间:2024-07-19 19:53:06
系统开源
leetcode打不开写代码 系统的要求和目标 功能需求 当用户输入他们的查询时,我们的服务应该建议从用户输入的任何内容开始的前 10 个术语。 结果中只应显示一小时窗口内出现频率超过 1000 的搜索词 结果中只应显示过去 7 天内的搜索词 能够根据盗版/法律问题过滤几个关键字 非功能需求 建议应实时显示。 用户应该能够在 200 毫秒内看到建议。 不在范围内 没有拼写检查 无语言环境 没有个人信息 只能说英语 不区分大小写 设计约束 高性能,响应速度应该比用户输入速度快,比方说 < 200ms 对结果准确性和系统可用性没有严格要求 体积限制 每天 50 亿次搜索 算法 数据结构 我们不能为此依赖某个数据库; 我们需要以高效的数据结构将索引存储在内存中。 可以为我们的目的服务的最合适的数据结构之一是 Trie。 trie 是一种树状数据结构,用于存储短语,其中每个节点以顺序方式存储短语的一个字符。 例如,如果我们需要在树中存储“cap、cat、caption、captain、capital”,它看起来像: 我们可以合并只有一个分支的节点以节省存储空间。 上面的 trie 可以这样存储
【文件预览】:
autocomplete-system-design-master
----.DS_Store(6KB)
----assets()
--------trie-example.png(254KB)
--------.DS_Store(6KB)
--------trie-for-physical-storage.png(118KB)
--------compressed-trie.png(134KB)
--------trie-on-single-machine.png(361KB)
--------trie-multi-shard.png(412KB)
--------trie-with-topk.png(322KB)
--------trie-simple-shard.png(396KB)
--------collect-phrase.png(336KB)
--------autocomplete-example.png(153KB)
----README.md(15KB)