def__init__(self): """ initialize your data structure here. """ self.items = [] self.min_items = [] self.size = -1# 初始值为-1 下标从0开始
defpush(self, x: int) -> None:
# 先更新辅助栈 if self.size == -1: # 第一次添加 self.min_items.append(x) elif x < self.min_items[self.size]: self.min_items.append(x) else: self.min_items.append(self.min_items[self.size])
# 再更新主栈 self.items.append(x) self.size += 1
defpop(self) -> None: if self.size > -1: res = self.items[self.size] del self.items[self.size] del self.min_items[self.size] self.size -= 1 return res else: raise ValueError
deftop(self) -> int: if self.size > -1: res = self.items[self.size] return res else: raise ValueError
defmin(self) -> int: if self.size > -1: res = self.min_items[self.size] return res else: raise ValueError