代码改变世界

最小栈

2019-08-04 13:58  小益达嘿嘿嘿  阅读(149)  评论(0)    收藏  举报

### 要求:
设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。
push(x) – 将元素 x 推入栈中。
pop() – 删除栈顶的元素。
top() – 获取栈顶元素。
getMin() – 检索栈中的最小元素

```
class MinStack(object):
  def __init__(self):
  self.stack = []#初始化栈
  self.min = None

  def push(self,x):
  self.stack.append(x)
  if self.min==None or self.min>x:
    self.min = x #更新最小值
  def pop(self):
    pop_item = self.stack.pop()
    if len(self.stack)==0;
      self.min=None
      return pop_item
  #更新最小值
    if pop_item ==self.min:
      self.min = self.stack[0]
      for i in self.stack:
        if i<self.min:
          self.min = i
    return pop_item
  def top(self):
    return self,stack[-1]
  def getMin(self):
    return self.min