数据结构
脱水星球
这个作者很懒,什么都没留下…
展开
-
[Python] [LeetCode] 146. LRU 缓存机制
双向链表+哈希表 这个设计题蛮有意思的,学到了很多 最近访问的放在前,许久未访问的放在后,同时支持动态空间、末尾删除,顶端插入。第一时间想到双向链表。但是链表不支持O(1)查询,因此加一个哈希表。 双向链表 指针指向自己代表null,这样的话delete和insert操作就不必判空 重载__repr__方便输出调试 LRU 支持 get put 方法 get() 使用哈希表取得目标节点的指针,返回键值。同时删除被访问节点并插入表头。 O(1) put() 先判断是否已经存在于表中,如在表中则修改键值并删除节原创 2021-04-13 19:25:14 · 125 阅读 · 0 评论 -
[Python] [LeetCode] 剑指 Offer 52. 链表的公共节点
被秀到了 判断两链表是否有交点,有则输出交点,无则输出 null 这道题解法很多,最简洁的解法为: # Definition for singly-linked list. # class ListNode: # def __init__(self, x): # self.val = x # self.next = None class Solution: def getIntersectionNode(self, headA: ListNode, head原创 2021-04-10 16:50:37 · 123 阅读 · 0 评论 -
Python dict类型 哈希表实现
reference: https://blog.csdn.net/qq_37049781/article/details/83959365原创 2021-04-10 16:28:43 · 158 阅读 · 0 评论 -
[Noi2010] D1T2 超级钢琴 (ST表 线段树 主席树)
大概就是对于每个i求一下可行区间里的最大值。 但是有可能次大值也在答案中。 所以每次选取最大值时顺便将次大值也加入堆中。 复杂度O(n log n) #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #include <map> #include <queue> #define INF 0原创 2017-09-14 11:28:39 · 465 阅读 · 0 评论 -
Bzoj - 4552 排序 [二分答案] [线段树]
4552: [Tjoi2016&Heoi2016]排序 Time Limit: 60 Sec Memory Limit: 256 MB Submit: 1400 Solved: 710 [Submit][Status][Discuss] Description 在2016年,佳媛姐姐喜欢上了数字序列。因而他经常研究关于序列的一些奇奇怪怪的问题,现在他在研究一个难题 ,需要你来帮原创 2017-10-23 21:24:17 · 405 阅读 · 0 评论