From 6d9c2ac6c0845621d994b30786845450fa69b384 Mon Sep 17 00:00:00 2001 From: prenastro Date: Tue, 30 Jun 2026 02:33:02 -0700 Subject: [PATCH] Completed s30 design-1 hashset and minstack --- hashset.py | 26 ++++++++++++++++++++++++++ minstack.py | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 hashset.py create mode 100644 minstack.py diff --git a/hashset.py b/hashset.py new file mode 100644 index 00000000..2bbaf72a --- /dev/null +++ b/hashset.py @@ -0,0 +1,26 @@ +class MyHashSet: + + def __init__(self): + self.set = [False] * (10 ** 6 + 1) + + def add(self, key: int) -> None: + self.set[key] = True + + def remove(self, key: int) -> None: + self.set[key] = False + + def contains(self, key: int) -> bool: + return self.set[key] + +# Your MyHashSet object will be instantiated and called as such: +# obj = MyHashSet() +# obj.add(key) +# obj.remove(key) +# param_3 = obj.contains(key) + +# Time complexity - +# add O(1) +# remove O(1) +# contains O(1) + +# Space Complexity = O(10^6) \ No newline at end of file diff --git a/minstack.py b/minstack.py new file mode 100644 index 00000000..dc7abd23 --- /dev/null +++ b/minstack.py @@ -0,0 +1,34 @@ +class MinStack: + + def __init__(self): + self.stack = [] + self.minStack = [] + + def push(self, val): + self.stack.append(val) + if not self.minStack or val <= self.minStack[-1]: + self.minStack.append(val) + + def pop(self): + if self.stack.pop() == self.minStack[-1]: + self.minStack.pop() + + def top(self): + return self.stack[-1] + + def getMin(self): + return self.minStack[-1] + +# Your MinStack object will be instantiated and called as such: +# obj = MinStack() +# obj.push(value) +# obj.pop() +# param_3 = obj.top() +# param_4 = obj.getMin() + +# Time and Space complexities for minstack +# Operation Time Space +# push O(1) O(n) +# pop O(1) O(1) +# top O(1) O(1) +# getMin O(1) O(1) \ No newline at end of file