Design HashMap
设计一个hashmap, 注意冲突即可.
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 38 39 40 41 42 43 44 45 46 47 48 49 50 |
class MyHashMap { public: /** Initialize your data structure here. */ vector<pair<int, int>> map[1001]; MyHashMap() { } /** value will always be non-negative. */ void put(int key, int value) { int h = key % 1001; for(auto &i : map[h]) { if(i.first == key) { i.second = value; return; } } map[h].push_back({key, value}); } /** Returns the value to which the specified key is mapped, or -1 if this map contains no mapping for the key */ int get(int key) { int h = key % 1001; for(auto i : map[h]) { if(i.first == key) { return i.second; } } return -1; } /** Removes the mapping of the specified value key if this map contains a mapping for the key */ void remove(int key) { int h = key % 1001; for(int i = 0; i < map[h].size(); i++) { if(map[h][i].first == key) { map[h].erase(map[h].begin()+i); return; } } } }; /** * Your MyHashMap object will be instantiated and called as such: * MyHashMap* obj = new MyHashMap(); * obj->put(key,value); * int param_2 = obj->get(key); * obj->remove(key); */ |