diff --git a/MinStack.py b/MinStack.py new file mode 100644 index 00000000..105dff47 --- /dev/null +++ b/MinStack.py @@ -0,0 +1,27 @@ +''' +Time Complexity : O(1) +Space Complexity : O(n) +Did this code successfully run on Leetcode : Yes +Any problem you faced while coding this : No +''' +class MinStack: + + def __init__(self): + self.stack = [] + + def isEmpty(self): + return len(self.stack) == 0 + + def push(self, val: int) -> None: + self.stack.append(val) + + def pop(self) -> None: + if not self.isEmpty(): + return self.stack.pop() + + def top(self) -> int: + if not self.isEmpty(): + return self.stack[-1] + + def getMin(self) -> int: + return min(self.stack) \ No newline at end of file diff --git a/MyHashSet.py b/MyHashSet.py new file mode 100644 index 00000000..1c105cb0 --- /dev/null +++ b/MyHashSet.py @@ -0,0 +1,46 @@ +''' +Time Complexity : O(1) +Space Complexity : O(n) +Did this code successfully run on Leetcode : Yes +Any problem you faced while coding this : No +''' + +class MyHashSet: + + def __init__(self): + self.bucket = 1000 + self.bucketItem = 1001 + self.storage = [[] for i in range(self.bucket)] + + def add(self, key: int) -> None: + + index = key%self.bucket + if self.storage[index] == []: + self.storage[index] = [False for i in range(self.bucketItem)] + + index2 = key//self.bucketItem + self.storage[index][index2] = True + + def remove(self, key: int) -> None: + index = key%self.bucket + if self.storage[index]: + index2 = key//self.bucketItem + self.storage[index][index2] = False + + def contains(self, key: int) -> bool: + index = key%self.bucket + index2 = key//self.bucketItem + if self.storage[index] != []: + return self.storage[index][index2] + else: + return False + +obj = MyHashSet() +print(obj.add(10)) +print(obj.add(40)) +print(obj.contains(10)) +print(obj.contains(30)) +print(obj.add(40)) +print(obj.contains(40)) +print(obj.remove(40)) +print(obj.contains(40)) \ No newline at end of file