Insert Delete GetRandom O(1) LeetCode solution in C++

1
class RandomizedSet {
2
public:
3
unordered_map<int, int> mp;
4
vector<int> v;
5
RandomizedSet() {}
6

7
bool insert(int val) {
8
if (mp.find(val) != mp.end()) return false;
9
mp[val] = v.size();
10
v.push_back(val);
11
return true;
12
}
13

14
bool remove(int val) {
15
if (mp.find(val) != mp.end()) {
16
v[mp[val]] = v.back();
17
mp[v.back()] = mp[val];
18
v.pop_back();
19
mp.erase(val);
20
return true;
21
}
22
return false;
23
}
24

25
int getRandom() {
26
return v[rand() % v.size()];
27
}
28
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0