From 7c60dee83b436e8e8a667bf9f191beced8de4fc3 Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Mon, 10 Mar 2025 00:36:13 -0600 Subject: chore: move cpp and rust code to directory --- other/insert_delete_getrandom.cpp | 45 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 other/insert_delete_getrandom.cpp (limited to 'other/insert_delete_getrandom.cpp') 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 data; + vector 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; +} -- cgit v1.2.3