数据结构设计
MD_
不拼一下 你怎么知道你不会成功!
展开
-
Leetcode 剑指 Offer 09. 用两个栈实现队列【数据结构设计】
文章目录问题描述解题报告实现代码参考资料问题描述用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入:[“CQueue”,“appendTail”,“deleteHead”,“deleteHead”][[],[3],[],[]]输出:[null,null,3,-1]解题报告数据入队列时,将数据压入栈 1 中;原创 2020-06-25 20:53:13 · 238 阅读 · 0 评论 -
Leetcode 146. LRU缓存机制【哈希表 [哈希表存储每个元素在双向链表中的指针]+双向链表】
文章目录问题描述解题报告实验代码参考资料问题描述运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果关键字 (key) 存在于缓存中,则获取关键字的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果关键字已经存在,则变更其数据值;如果关键字不存在,则插入该组「关键字/值」。当缓存容量达到上限时,它应该在写入新数据之前删除最久未使用的数据值,从原创 2020-05-27 18:02:29 · 192 阅读 · 0 评论 -
Leetcode 381. O(1) 时间插入、删除和获取随机元素 - 允许重复【哈希表[哈希表存储每个元素在vector中的索引]+vector】
文章目录问题描述解题报告实现代码参考资料问题描述设计一个支持在平均 时间复杂度 O(1) 下, 执行以下操作的数据结构。注意: 允许出现重复元素。insert(val):向集合中插入元素 val。remove(val):当 val 存在时,从集合中移除一个 val。getRandom:从现有集合中随机获取一个元素。每个元素被返回的概率应该与其在集合中的数量呈线性相关。示例:// 初始化一个空的集合。 RandomizedCollection collection = newRando原创 2020-05-27 19:51:51 · 193 阅读 · 0 评论