-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSolution146.hpp
More file actions
37 lines (31 loc) · 759 Bytes
/
Solution146.hpp
File metadata and controls
37 lines (31 loc) · 759 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//
// Solution146.hpp
// Algorithm
//
// Created by Pancf on 2020/12/8.
// Copyright © 2020 Pancf. All rights reserved.
//
#ifndef Solution146_hpp
#define Solution146_hpp
#include <stdio.h>
#include <unordered_map>
#include <list>
class LRUCache {
public:
LRUCache(int capacity);
// implement get and put in o(1)
int get(int key);
void put(int key, int value);
private:
using KeyValueT = std::list<std::pair<int, int>>;
std::unordered_map<int, KeyValueT::iterator> keyToIndex;
KeyValueT keyValues;
int capacity;
};
/**
* Your LRUCache object will be instantiated and called as such:
* LRUCache* obj = new LRUCache(capacity);
* int param_1 = obj->get(key);
* obj->put(key,value);
*/
#endif /* Solution146_hpp */