LeetCode --- 155. 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.

Example:

MinStack minStack = new MinStack();
minStack.push(-2);
minStack.push(0);
minStack.push(-3);
minStack.getMin();   --> Returns -3.
minStack.pop();
minStack.top();      --> Returns 0.
minStack.getMin();   --> Returns -2.
# -*- coding:utf-8 -*-
__author__ = 'yangxin_ryan'
"""
Soultions:
需要时间复杂度在O(n)常量级别。
方法一、用空间换时间:(下面代码中的方法)
我们设置两组List,分别存储数据以及对应当前的最小值。
然后一次去更新即可stack以及mins。

方法二、用一个变量去保存min_val最小值。
然后每次操作时,去要遍历所有元素去对比最小值。
"""


class MinStack(object):

    def __init__(self):
        """
        initialize your data structure here.
        """
        self.stack =

你可能感兴趣的:(Python,数据结构,LeetCode)