由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 写的LRU通不过大数据,帮忙看看
相关主题
LRU Cache, 请问, 如果我这样写,错误在哪里?为什么会time limit exceeded? 谢谢亚麻onsite
关于用STL实现LRU cache请问pure storage 的那道map 数据结构题
Max Points on a Line 用c++map老是没法compile请教为什么这段程序运行不work?(doubly linked list) (转载
菜鸟 贴一个 leetcode LRU Cache -- java代码,并求解疑惑。大家帮忙看看这个4sum怎么就不对
请教一道, leetcode题.LRU C++过不了
LRU cache 超时LRU cache 问题
LRU cache 超时, 大家帮忙看看类似LRU Cache的题应该怎么练习?
LRU的多线程版本,这个答案有问题吗谁来解释下hashtable的iterator是怎么实现的
相关话题的讨论汇总
话题: int话题: key话题: list话题: unordered话题: iterator
进入JobHunting版参与讨论
1 (共1页)
H*********a
发帖数: 34
1
用的list和unordered_map
----------------------------
谢谢提醒,改过之后,发现还是通不过
class LRUCache{
public:
int cap;
unordered_map mymap;
list mylist;
LRUCache(int capacity) {
cap = capacity;
}

int get(int key) {
unordered_map::iterator it = mymap.find(key);
if (it == mymap.end())
return -1;
else {
list::iterator it_list = mylist.begin();
while(*it_list != key) it_list++;
mylist.erase(it_list);
mylist.push_back(key);
return it->second;
}
}

void set(int key, int value) {
unordered_map::iterator it = mymap.find(key);
if (it == mymap.end()) {
if (mymap.size() < cap) {
mymap[key] = value;
mylist.push_back(key);
}
else {
int key_delete = mylist.front();
mylist.pop_front();
unordered_map::iterator it_delete = mymap.find(key
_delete);
mymap.erase(it_delete);
mylist.push_back(key);
mymap[key] = value;
}
}
else {
mymap[key] = value;
list::iterator it_list = mylist.begin();
while(*it_list != key) it_list++;
mylist.erase(it_list);
mylist.push_back(key);
}
}
};
H*********a
发帖数: 34
2
谢谢各位了~~~还有就是自己写的代码经常很messy,不知道这回这个按标准算如何的

【在 H*********a 的大作中提到】
: 用的list和unordered_map
: ----------------------------
: 谢谢提醒,改过之后,发现还是通不过
: class LRUCache{
: public:
: int cap;
: unordered_map mymap;
: list mylist;
: LRUCache(int capacity) {
: cap = capacity;

w*******s
发帖数: 96
3
你的get函数成功查询后,应该把list中它的位置调整到最新?
int get(int key) {
unordered_map::iterator it = mymap.find(key);
if (it == mymap.end())
return -1;
else
return it->second;
}
H*********a
发帖数: 34
4
哦,忘了查看也算调用了,谢谢!

【在 w*******s 的大作中提到】
: 你的get函数成功查询后,应该把list中它的位置调整到最新?
: int get(int key) {
: unordered_map::iterator it = mymap.find(key);
: if (it == mymap.end())
: return -1;
: else
: return it->second;
: }

1 (共1页)
进入JobHunting版参与讨论
相关主题
谁来解释下hashtable的iterator是怎么实现的请教一道, leetcode题.
Facebook Phone InterviewLRU cache 超时
发个g的电面LRU cache 超时, 大家帮忙看看
赞amazon西雅图的马博士LRU的多线程版本,这个答案有问题吗
LRU Cache, 请问, 如果我这样写,错误在哪里?为什么会time limit exceeded? 谢谢亚麻onsite
关于用STL实现LRU cache请问pure storage 的那道map 数据结构题
Max Points on a Line 用c++map老是没法compile请教为什么这段程序运行不work?(doubly linked list) (转载
菜鸟 贴一个 leetcode LRU Cache -- java代码,并求解疑惑。大家帮忙看看这个4sum怎么就不对
相关话题的讨论汇总
话题: int话题: key话题: list话题: unordered话题: iterator