题目来源:
https://leetcode.com/problems/min-stack/
题意分析:
实现一个小的栈,包括初始化,push,pop,top,和getMin。
题目思路:
思路是用两个数组来处理。
代码(python):
1 class MinStack(object): 2 def __init__(self): 3 """ 4 initialize your data structure here. 5 """ 6 self.stack1 = [] 7 self.stack2 = [] 8 9 10 def push(self, x):11 """12 :type x: int13 :rtype: nothing14 """15 self.stack1.append(x)16 if len(self.stack2) == 0 or x <= self.stack2[-1]:17 self.stack2.append(x)18 19 20 def pop(self):21 """22 :rtype: nothing23 """24 tmp = self.stack1.pop()25 if tmp == self.stack2[-1]:26 self.stack2.pop()27 28 29 def top(self):30 """31 :rtype: int32 """33 return self.stack1[-1]34 35 def getMin(self):36 """37 :rtype: int38 """39 return self.stack2[-1]40