Tag: 设计

【设计难题】力扣1797-设计一个验证系统

摘要: 设计难题,验证系统 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 本文我们看一个设计问题,第 48 场双周赛 B 题。本题的设计以哈希表为核心,类似的设计题汇总见文章 设计-功能系统。此外还

【设计难题】力扣432-全O(1)的数据结构

摘要: 基于链表+哈希表解决与频数相关的设计问题 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 各位好,本文我们来看一个设计问题。在文章 设计-功能系统 中我们系统梳理过设计功能系统的问题。本文解决

【设计难题】力扣642-设计搜索自动补全系统

Trie $1 题目题目链接 642. 设计搜索自动补全系统 题目描述为搜索引擎设计一个搜索自动补全系统。用户会输入一条语句(最少包含一个字母,以特殊字符 ‘#’ 结尾)。除 ‘#’ 以外用户输入的每个字符,返回历史中热度前三并以当前输入部分为前缀的句子。下面是详细规则: 一条句子的热度定义为历史上用户输入这个句子的总次数。返回前三的句子需要按照热度从高到低排序(第一个是最热门的)。如果有

【设计难题】力扣635-设计日志存储系统

基于 Trie 的日期索引设计 $1 题目题目描述你将获得多条日志,每条日志都有唯一的 id 和 timestamp ,timestamp 是形如 Year:Month:Day:Hour:Minute:Second 的字符串,2017:01:01:23:59:59 ,所有值域都是零填充的十进制数。 实现 LogSystem 类: LogSystem() 初始化 LogSystem 对象voi

【设计难题】力扣631-设计Excel求和公式

基于图论的设计 $1 题目题目链接631. 设计 Excel 求和公式 题目描述你的任务是实现 Excel 的求和功能,具体的操作如下: Excel(int H, char W): 这是一个构造函数,输入表明了 Excel 的高度和宽度。H 是一个正整数,范围从 1 到 26,代表高度。W 是一个字符,范围从 ‘A’ 到 ‘Z’,宽度等于从 ‘A’ 到 W 的字母个数。Excel 表格是一个

【设计难题】力扣1500-设计文件分享系统

$1 题目题目链接1500. 设计文件分享系统 题目描述我们需要使用一套文件分享系统来分享一个非常大的文件,该文件由 m 个从 1 到 m 编号的文件块组成。 当用户加入系统时,系统应为其注册一个独有的 ID。这个独有的 ID 应当被相应的用户使用一次,但是当用户离开系统时,其 ID 应可以被(后续新注册的用户)再次使用。 用户可以请求文件中的某个指定的文件块,系统应当返回拥有这个文件块的所有用户

【设计难题】力扣895-最大频率栈

摘要: 基于链表+哈希表解决与频数相关的设计问题 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 各位好,本文我们来看一个设计问题。需求与频数相关,具体地就是在栈的基础上,push 的操作不变,pop

力扣460-LFU

460. LFU缓存 LFU 的原理和实现 LRU : 力扣146-LRU,内存淘汰算法 Redis 中的 LFU $1 题目题目链接 460. LFU缓存 题目描述请你为 最不经常使用(LFU)缓存算法设计并实现数据结构。它应该支持以下操作:get 和 put。 get(key) - 如果键存在于缓存中,则获取键的值(总是正数),否则返回 -1。put(key, value) - 如果键已

设计-基础数据结构

实现哈希表 705. 设计哈希集合 706. 设计哈希映射 实现字典树 208. 实现 Trie (前缀树) 实现线段树 307. 区域和检索 - 数组可修改 308. 二维区域和检索 - 可变 实现前缀和 303. 区域和检索 - 数组不可变 304. 二维区域和检索 - 矩阵不可变 实现四叉树 427. 建立四叉树 实现队列 622. 设计循环队列 641. 设计循环双

设计-功能系统

摘要: 力扣上的设计功能系统的题目分类汇总 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】我的网站:潮汐朝夕的生活实验室我的公众号:算法题刷刷我的知乎:潮汐朝夕我的github:FennelDumplings我的leetcode:FennelDumplings 本文总结了力扣上 2000 题以内的关于设计功能系统的 38 道题。将核心数据结构相同的放到了一起。刷完这份

力扣146-LRU,内存淘汰算法

LRU 的基本思想 146. LRU缓存机制 LRU 的插入和查询 相关的基础数据结构: 707. 设计链表, 705. 设计哈希集合 语言自带的支持: Java: LinkedHashMap, Python: collections.OrderedDict LRU 作为组件解决滑动窗口特定问题 LRU 的删除 340. 至多包含 K 个不同字符的最长子串 Redis 中的 LRU

力扣1381-设计一个支持增量操作的栈

第 180 场周赛 B 题 栈底的 k 个元素都加 val,每次调用都直接将每个位置都加 val 的话,一次调用需要 $O(N)$ push 是单点修改, pop 是单点查询,inc 是区间修改。因此可以在内部用线段树维护,一次调用需要摊销 $O(\log N)$ 用额外维护 i 位置的贡献,当 i 位置出站时再计将贡献向栈底传,一次调用需要摊销 $O(1)$ $1 题目题目链接1381. 设

【设计难题】力扣355-设计推特

设计类问题 从需求中抽象出链表多路归并的经典问题 $1 题目题目链接355. 设计推特 题目描述设计一个简化版的推特(Twitter),可以让用户实现发送推文,关注/取消关注其他用户,能够看见关注人(包括自己)的最近十条推文。你的设计需要支持以下的几个功能: postTweet(userId, tweetId): 创建一条新的推文getNewsFeed(userId): 检索最近的十条推