class MinStack: def __init__(self): self.sta = [] self.minn = 2 ** 31 self.tops = -1 self.sorted = [] def push(self, val: int) -> None: self.tops += 1 if len(self.sta) <= self.tops: self.sta.append(val) else: self.sta[self.tops] = val flag = False for ind, num in enumerate(self.sorted): if val < num: self.sorted.insert(ind,val) flag = True break if flag == False: self.sorted.append(val) self.minn = min(self.minn, val) def pop(self) -> None: val = self.sta[self.tops] self.sorted.remove(val) self.tops -= 1 def top(self) -> int: return self.sta[self.tops] def getMin(self) -> int: return self.sorted[0] mins = MinStack() mins.push(-2) mins.push(0) mins.push(-3) print(mins.getMin()) print(mins.pop()) print(mins.top()) print(mins.getMin())