diff options
author | Jack Sangdahl <[email protected]> | 2025-03-10 00:36:13 -0600 |
---|---|---|
committer | Jack Sangdahl <[email protected]> | 2025-03-10 00:36:13 -0600 |
commit | 7c60dee83b436e8e8a667bf9f191beced8de4fc3 (patch) | |
tree | eb7a24ee2067f92245c57bb118e85a1baf15df50 /other/insert_delete_getrandom.cpp | |
parent | 5d7cdc215e4ba1ec4cbb24c084cccb5e5e641468 (diff) | |
download | leetcode-7c60dee83b436e8e8a667bf9f191beced8de4fc3.tar.gz leetcode-7c60dee83b436e8e8a667bf9f191beced8de4fc3.zip |
chore: move cpp and rust code to directory
Diffstat (limited to 'other/insert_delete_getrandom.cpp')
-rw-r--r-- | other/insert_delete_getrandom.cpp | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/other/insert_delete_getrandom.cpp b/other/insert_delete_getrandom.cpp new file mode 100644 index 0000000..5bb76da --- /dev/null +++ b/other/insert_delete_getrandom.cpp @@ -0,0 +1,45 @@ +#include "leetcode.h" + +class RandomizedSet { +public: + bool insert(int val) { + if (data.count(val)) + return false; + data[val] = idxs.size(); + idxs.push_back(val); + return true; + } + bool remove(int val) { + if (!data.count(val)) + return false; + int lst = idxs.back(), pos = data[val]; + data[lst] = pos; + idxs[pos] = lst; + data.erase(val); + idxs.pop_back(); + return true; + } + int getRandom() { return idxs[rand() % idxs.size()]; } + +private: + unordered_map<int, int> data; + vector<int> idxs; +}; + +int main() { + RandomizedSet *obj = new RandomizedSet(); + bool param_1 = obj->insert(2); + bool param_2 = obj->remove(1); + int param_3 = obj->getRandom(); + cout << "param_1 (insert 2): "; + if (param_1) + cout << "true\n"; + else + cout << "false\n"; + cout << "param_2 (remove 1): "; + if (param_2) + cout << "true\n"; + else + cout << "false\n"; + cout << "param_3 (getRandom): " << param_3; +} |