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