定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。
在该栈中,调用min、push及pop的时间复杂度都是O(1)。
设立辅助栈来存储当前数据栈的最小值。
class Solution:
def __init__(self):
self._value = None
def push(self, node):
if self._value is None:
self._value = []
if not self._value:
self._value.append((node, node))
elif self._value[-1][1] < node:
self._value.append((node, self._value[-1][1]))
else:
self._value.append((node, node))
def pop(self):
if not self._value:
return False
return self._value.pop()[0]
def top(self):
if not self._value:
return False
return self._value[-1][0]
def min(self):
if not self._value:
return False
return self._value[-1][1]
(最近更新:2019年07月24日)