diff --git a/MinStack.py b/MinStack.py new file mode 100644 index 00000000..a0a0ff31 --- /dev/null +++ b/MinStack.py @@ -0,0 +1,37 @@ +# Time complexity: O(1) +# Space complexity: O(n) +import sys +class MinStack: + + def __init__(self): + self.min = None + self.stack = [] + self.minStack = [] + self.minStack.append(sys.maxsize) + + def push(self, val: int) -> None: + if self.min == None: self.min = val + elif val <= self.min: + self.minStack.append(self.min) + self.min = val + self.stack.append(val) + + def pop(self) -> None: + top = self.stack.pop() + if top == self.min: + self.min = self.minStack.pop() + + def top(self) -> int: + return self.stack[-1] + + def getMin(self) -> int: + return self.min + + + +# Your MinStack object will be instantiated and called as such: +# obj = MinStack() +# obj.push(val) +# obj.pop() +# param_3 = obj.top() +# param_4 = obj.getMin() \ No newline at end of file diff --git a/MyHashSet.py b/MyHashSet.py new file mode 100644 index 00000000..fa8d87e2 --- /dev/null +++ b/MyHashSet.py @@ -0,0 +1,36 @@ +class MyHashSet: + + def __init__(self): + self.bucketSize = 1000 + self.bucketItemSize = 1000 + self.storage = [None] * self.bucketSize + + def bucket(self, key: int) -> int: + return key % self.bucketSize + + def bucketItem(self, key: int) -> int: + return key // self.bucketItemSize + + + def add(self, key: int) -> None: + if self.storage[self.bucket(key)] == None: + self.storage[self.bucket(key)] = [False] * (self.bucketItemSize + 1) + self.storage[self.bucket(key)][self.bucketItem(key)] = True + + def remove(self, key: int) -> None: + if self.storage[self.bucket(key)] != None: + self.storage[self.bucket(key)][self.bucketItem(key)] = False + + + def contains(self, key: int) -> bool: + if self.storage[self.bucket(key)] != None: + return self.storage[self.bucket(key)][self.bucketItem(key)] + return False + + + +# Your MyHashSet object will be instantiated and called as such: +# obj = MyHashSet() +# obj.add(key) +# obj.remove(key) +# param_3 = obj.contains(key) \ No newline at end of file