链接: 原文链接.
总结:因为个人写的调用min函数,导致执行时间大幅增长
# 自己写的 # class MinStack: # def __init__(self): # """ # initialize your data structure here. # """ # self.A = [] # def push(self, x: int) -> None: # self.A.append(x) # def pop(self) -> None: # self.A.pop() # def top(self) -> int: # return self.A[-1] # def min(self) -> int: # return min(self.A) # 官方的 class MinStack: def __init__(self): # self.B 是用来求最小元素的 self.A, self.B = [], [] def push(self, x: int): self.A.append(x) # 如果B队列为空或者是x比B的最后一个值还要小的话,就执行 # 这样就可以保证 B队列的最后一只值始终是最小的。 # 这里需要注意的是<=,保证B队列和A队列里的最小值的个数是相等的。 if not self.B or x <= self.B[-1]: self.B.append(x) def pop(self): if self.A.pop() == self.B[-1]: self.B.pop() def top(self): return self.A[-1] def min(self): return self.B[-1]