diff --git a/MinStack.py b/MinStack.py new file mode 100644 index 00000000..dfc501c1 --- /dev/null +++ b/MinStack.py @@ -0,0 +1,24 @@ +class MinStack: + + def __init__(self): + self.stack=[] + self.minStack=[] + self.Min=int(sys.maxsize) + self.minStack.append(self.Min) + + + def push(self, val: int) -> None: + if val<=self.Min: + self.Min=val + self.stack.append(val) + self.minStack.append(self.Min) + def pop(self) -> None: + self.stack.pop() + self.minStack.pop() + self.Min=self.minStack[-1] + def top(self) -> int: + return self.stack[-1] + + def getMin(self) -> int: + return self.Min + \ No newline at end of file diff --git a/design hashset.py b/design hashset.py new file mode 100644 index 00000000..76fe9d2b --- /dev/null +++ b/design hashset.py @@ -0,0 +1,31 @@ +class MyHashSet: + + def __init__(self): + self.bucket=1000 + self.bucketItem=1000 + self.storage=[None]*self.bucket + def hash1(self,key:int)->int: + return key%1000 + def hash2(self,key:int)->int: + return key//1000 + def add(self, key: int) -> None: + bucket=self.hash1(key) + bucketItem=self.hash2(key) + if self.storage[bucket]==None: + if bucket==0: + self.storage[bucket]=[False]*(self.bucketItem+1) + else: + self.storage[bucket]=[False]*(self.bucketItem) + self.storage[bucket][bucketItem]=True + def remove(self, key: int) -> None: + bucket=self.hash1(key) + bucketItem=self.hash2(key) + if self.storage[bucket]==None: + return + self.storage[bucket][bucketItem]=False + def contains(self, key: int) -> bool: + bucket=self.hash1(key) + bucketItem=self.hash2(key) + if self.storage[bucket]==None: + return False + return self.storage[bucket][bucketItem] \ No newline at end of file