380. Insert Delete GetRandom O
Posted The Tech Road
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了380. Insert Delete GetRandom O相关的知识,希望对你有一定的参考价值。
class RandomizedSet { public: vector<int> data; unordered_map<int,int> m; // <val,index in data vector> /** Initialize your data structure here. */ RandomizedSet() { } /** Inserts a value to the set. Returns true if the set did not already contain the specified element. */ bool insert(int val) { if (m.count(val)) return false; m[val] = data.size(); data.push_back(val); return true; } /** Removes a value from the set. Returns true if the set contained the specified element. */ bool remove(int val) { if (!m.count(val)) return false; int idx = m[val]; m[data.back()] = idx; data[idx] = data.back(); m.erase(val); data.pop_back(); return true; } /** Get a random element from the set. */ int getRandom() { return data[rand() % data.size()]; } }; /** * Your RandomizedSet object will be instantiated and called as such: * RandomizedSet obj = new RandomizedSet(); * bool param_1 = obj.insert(val); * bool param_2 = obj.remove(val); * int param_3 = obj.getRandom(); */
以上是关于380. Insert Delete GetRandom O的主要内容,如果未能解决你的问题,请参考以下文章
[LeetCode] 380. Insert Delete GetRandom O
380. Insert Delete GetRandom O
LeetCode 380. Insert Delete GetRandom O