LeetCode-155 最小栈

# 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。
#
# push(x) -- 将元素 x 推入栈中。
# pop() -- 删除栈顶的元素。
# top() -- 获取栈顶元素。
# getMin() -- 检索栈中的最小元素。
#
# 示例:
# MinStack minStack = new MinStack();
# minStack.push(-2);
# minStack.push(0);
# minStack.push(-3);
# minStack.getMin();   --> 返回 -3.
# minStack.pop();
# minStack.top();      --> 返回 0.
# minStack.getMin();   --> 返回 -2.


class MinStack:

    def __init__(self):
        """
        initialize your data structure here.
        """
        self.nums = []
        self.index_top = -1

    def push(self, x):
        self.index_top += 1
        self.nums.append(x)

    def pop(self):
        if self.index_top >= 0:
            self.nums.pop(self.index_top)
            self.index_top -= 1

    def top(self):
        if self.index_top >= 0:
            return self.nums[self.index_top]

    def getMin(self):
        if self.index_top >= 0:
            index_min = 0
            for i in range(self.index_top+1):
                if self.nums[i] < self.nums[index_min]:
                    index_min = i
            return self.nums[index_min]

 

你可能感兴趣的:(LeetCode点滴)