From dccae42675aa1628114785fb604738b9aa1eed88 Mon Sep 17 00:00:00 2001 From: Ashwagandha-coder Date: Sat, 26 Apr 2025 16:28:06 +0100 Subject: [PATCH] add 380 --- .../github/contest/design/DesignLeetcode.kt | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/contest/src/main/java/com/github/contest/design/DesignLeetcode.kt b/contest/src/main/java/com/github/contest/design/DesignLeetcode.kt index 8542f2db..d2614a26 100644 --- a/contest/src/main/java/com/github/contest/design/DesignLeetcode.kt +++ b/contest/src/main/java/com/github/contest/design/DesignLeetcode.kt @@ -152,4 +152,32 @@ class TimeMap() { private fun emptyString() = "" +} + +/** + * 380. Insert Delete GetRandom O(1) + */ + +class RandomizedSet() { + + private val store = mutableMapOf() + + fun insert(`val`: Int): Boolean = when { + store.contains(`val`) -> false + else -> { + store[`val`] = store.getOrDefault(`val`, 0) + 1 + true + } + } + + fun remove(`val`: Int): Boolean = when { + !store.contains(`val`) -> false + else -> { + store.remove(`val`) + true + } + } + + fun getRandom(): Int = store.keys.random() + } \ No newline at end of file