![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
哈希表和堆
文章平均质量分 70
SeeDoubleU
这个作者很懒,什么都没留下…
展开
-
哈希表和堆的总结
文章目录用哈希表和堆处理的问题代码注意事项时间复杂度分析题目汇总用哈希表和堆处理的问题查询、插入、删除的操作要远多于其余的操作的情况下使用哈希表。在动态环境中需要快速获取最值的情况下使用堆。代码注意事项哈希表——insert:O(1),find:O(1),delete:O(1)closed hashing:一个位置只放一个元素,冲突的元素向后寻找空位放下。(缺点:由于find时有些元素被当作寻找正确元素的桥梁,所以在元素删除时候不能直接置空,而改为标记为delete,依然充当桥梁,多原创 2022-05-09 00:35:30 · 479 阅读 · 0 评论 -
89 合并k个排序链表-多路归并排序(Merge K Sorted Lists)
文章目录1 题目2 解决方案2.1 思路2.2 时间复杂度2.3 空间复杂度3 源码1 题目题目:合并k个排序链表(Merge K Sorted Lists)描述:合并 k 个排序链表(序列为升序序列),并且返回合并后的排序链表(序列为升序学列)。尝试分析和描述其复杂度。lintcode题号——104,难度——medium样例1:输入:lists = [2->4->null,null,-1->null]输出:-1->2->4->null解释:将2-&g原创 2022-05-09 00:28:10 · 587 阅读 · 0 评论 -
88 前K大数 II(Top k Largest Numbers II)
文章目录1 题目2 解决方案2.1 思路2.2 时间复杂度2.3 空间复杂度3 源码1 题目题目:前K大数 II(Top k Largest Numbers II)描述:实现一个数据结构,提供下面两个接口:1.add(number) 添加一个元素;2.topk() 返回此数据结构中最大的k个数字。当我们创建数据结构时,k是给定的。lintcode题号——545,难度——medium样例1:输入: s = new Solution(3);s.add(3)s.add(10)s.to原创 2022-05-09 00:26:18 · 202 阅读 · 0 评论 -
87 前K大数(Top k Largest Numbers)
文章目录1 题目2 解决方案2.1 思路2.3 时间复杂度2.4 空间复杂度3 源码1 题目题目:前K大数(Top k Largest Numbers)描述:在一个数组中找到前K大的数。lintcode题号——544,难度——medium样例1:输入: [3, 10, 1000, -99, 4, 100] 并且 k = 3输出: [1000, 100, 10]样例2:输入: [8, 7, 6, 5, 4, 3, 2, 1] 并且 k = 5输出: [8, 7, 6, 5, 4]原创 2022-05-09 00:25:37 · 304 阅读 · 0 评论 -
86 丑数II(Ugly Number II)
文章目录1 题目2 解决方案2.1 思路2.3 时间复杂度2.4 空间复杂度3 源码3.1 优先队列方式3.2 三指针方式1 题目题目:丑数II(Ugly Number II)描述:如果一个数只有质数因子2,3,5 ,那么这个数是一个丑数。前10个丑数分别为 1, 2, 3, 4, 5, 6, 8, 9, 10, 12…设计一个算法,找出第N个丑数。我们可以认为 1 也是一个丑数。lintcode题号——4,难度——medium样例1:输入:n = 9输出:10解释:[1,2,3,4,5原创 2022-05-09 00:25:01 · 219 阅读 · 0 评论 -
85 丑数(Ugly Number)
文章目录1 题目2 解决方案2.1 思路2.3 时间复杂度2.4 空间复杂度3 源码1 题目题目:丑数(Ugly Number)描述:写一个程序来检测一个整数是不是丑数。丑数的定义是,只包含质因子 2, 3, 5 的正整数。比如 6, 8 就是丑数,但是 14 不是丑数因为他包含了质因子 7。可以认为 1 是一个特殊的丑数。lintcode题号——517,难度——easy样例1:输入: num = 8 输出: true解释:8=2*2*2样例2:输入: num = 14 输出:原创 2022-05-09 00:24:16 · 193 阅读 · 0 评论 -
84 LRU缓存-最近最少使用策略(LRU Cache)
文章目录1 题目2 解决方案2.1 思路2.3 时间复杂度2.4 空间复杂度3 源码3.1 双链表算法3.2 单链表算法1 题目题目:最近最少使用LRU缓存策略(LRU Cache)描述:为最近最少使用(LRU)缓存策略设计一个数据结构,它应该支持以下操作:获取数据和写入数据。get(key) 获取数据:如果缓存中存在key,则获取其数据值(通常是正数),否则返回-1。set(key, value) 写入数据:如果key还没有在缓存中,则设置或插入其数据值。当缓存达到上限,它应该在写入新数据之前删原创 2022-05-09 00:23:26 · 636 阅读 · 0 评论 -
83 重哈希(Rehashing)
文章目录1 题目2 解决方案2.1 思路2.3 时间复杂度2.4 空间复杂度3 源码1 题目题目:重哈希(Rehashing)描述:哈希表容量的大小在一开始是不确定的。如果哈希表存储的元素太多(如超过容量的十分之一),我们应该将哈希表容量扩大一倍,并将所有的哈希值重新安排。给定一个哈希表,返回重哈希后的哈希表。// 哈希函数int hashcode(int key, int capacity) { return key % capacity;}lintcode题号——129,难度—原创 2022-05-08 23:10:52 · 2031 阅读 · 0 评论