由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - LRU Cache, 请问, 如果我这样写,错误在哪里?为什么会time limit exceeded? 谢谢
相关主题
写的LRU通不过大数据,帮忙看看LRU cache 问题
关于用STL实现LRU cacheLRU C++过不了
LRU cache 超时L一个电面题
类似LRU Cache的题应该怎么练习?准备回来跟大家一起练习做题了
菜鸟 贴一个 leetcode LRU Cache -- java代码,并求解疑惑。报个G的电面
请教一道, leetcode题.T家电面面经并且不解为何被秒拒
LRU cache 超时, 大家帮忙看看C++高手看下这个LC的LRU Cache的实现
LRU的多线程版本,这个答案有问题吗怎么设计分布式LRU cache?
相关话题的讨论汇总
话题: key话题: int话题: value话题: lrucache话题: back
进入JobHunting版参与讨论
1 (共1页)
k**e
发帖数: 17
1
class LRUCache{
public:
int size;
unordered_map M;
list L;
LRUCache(int capacity) {
size = capacity;
}

int get(int key) {
if (M.find(key)==M.end()) return -1;
L.remove(key);
L.push_back(key);
return M[key];
}

void set(int key, int value) {
if (M.find(key)==M.end()) {
if (M.size() M[key]=value;
L.push_back(key);
}
else {
M.erase(*L.begin());
M[key] = value;
L.pop_front();
L.push_back(key);
}
}
else {
M[key]=value;
L.remove(key);
L.push_back(key);
}
}
};
d****n
发帖数: 12461
2
map存list里面的iterator
删除用erase,不用find。
s**x
发帖数: 7506
3
List 要存key , value pair, 或hash table 的相应iteratir plus value pair.
Hash table 的value 应该是相应list 的iterator.
Get 的时候hash table 找到后要通过iterator 去移动在list 中位置。list 删除最后
一个时要通过对应的iteratir 找hash 中的element.
k**e
发帖数: 17
4
感谢回复,但是我还是不理解,为什么map里面要放key和list的iterator?我直接把key
和value存在map里面,然后按访问的次序把keys存一个list,并实时更新,这样有何不
妥?难道这样时间复杂度高吗?请指教,谢谢
g****s
发帖数: 340
5
对。"L.remove(key)"的complexity是O(n),"iterator erase(const_iterator
position)"的complexity是O(1)。
1 (共1页)
进入JobHunting版参与讨论
相关主题
怎么设计分布式LRU cache?菜鸟 贴一个 leetcode LRU Cache -- java代码,并求解疑惑。
亚麻onsite请教一道, leetcode题.
G家面题LRU cache 超时, 大家帮忙看看
how to query in the universal hash table?LRU的多线程版本,这个答案有问题吗
写的LRU通不过大数据,帮忙看看LRU cache 问题
关于用STL实现LRU cacheLRU C++过不了
LRU cache 超时L一个电面题
类似LRU Cache的题应该怎么练习?准备回来跟大家一起练习做题了
相关话题的讨论汇总
话题: key话题: int话题: value话题: lrucache话题: back