JonnyF--Min Stack
Design a stack that supports push, pop, top, and retrieving the minimum element in constant time.
- push(x) -- Push element x onto stack.
- pop() -- Removes the element on top of the stack.
- top() -- Get the top element.
- getMin() -- Retrieve the minimum element in the stack.
解题思路:
这道题也很简单,只是单纯的实现一个栈的结构。只要理解了栈的结构和功能就很好做了。
class MinStack: def __init__(self): self.items = [] self.minitems = [] # @param x, an integer # @return an integer def push(self, x): self.items.append(x) if not self.minitems: self.minitems.append(x) elif x <= min(self.minitems): self.minitems.append(x) return x # @return nothing def pop(self): if not self.items: return stop = self.items[len(self.items) - 1] mstop = self.minitems[len(self.minitems) - 1] if stop == mstop: self.minitems.pop() self.items.pop() # @return an integer def top(self): if not self.items: return 0 return self.items[len(self.items) - 1] # @return an integer def getMin(self): if not self.minitems: return 0 return self.minitems[len(self.minitems) - 1]

浙公网安备 33010602011771号