zoukankan      html  css  js  c++  java
  • leetcode-easy-design-155 Min Stack

    mycode   21.48%

    class MinStack(object):
    
        def __init__(self):
            """
            initialize your data structure here.
            """
            self.res = []
            
    
        def push(self, x):
            """
            :type x: int
            :rtype: None
            """
            self.res.append(x)
            
    
        def pop(self):
            """
            :rtype: None
            """
            if not self.res:
                return None
            else:
                val = self.res[-1]
                self.res[:] = self.res[:-1]
                return val
            
    
        def top(self):
            """
            :rtype: int
            """
            if not self.res:
                return None
            else:
                return self.res[-1]
          
            
    
        def getMin(self):
            """
            :rtype: int
            """
            if not self.res:
                return None
            else:
                return min(self.res)
          
            
    
    
    # Your MinStack object will be instantiated and called as such:
    # obj = MinStack()
    # obj.push(x)
    # obj.pop()
    # param_3 = obj.top()
    # param_4 = obj.getMin()

    列表是有pop操作的

      self.res.pop()

    参考

    始终更新最小值,所以节省 了时间

    class MinStack(object):
    
        def __init__(self):
            """
            initialize your data structure here.
            """
            self.stack = []
            self.minval = 99999999999999999
    
        def push(self, x):
            """
            :type x: int
            :rtype: None
            """
            if(x < self.minval):
                self.minval = x
            self.stack.append(x)
    
        def pop(self):
            """
            :rtype: None
            """
            if(self.stack[-1] == self.minval):
                self.minval = 99999999999
                for num in self.stack[0:-1]:
                    if(num < self.minval):
                        self.minval = num
            self.stack.pop(-1)
    
        def top(self):
            """
            :rtype: int
            """
            return self.stack[-1]
    
        def getMin(self):
            """
            :rtype: int
            """
            return self.minval
    
    
    # Your MinStack object will be instantiated and called as such:
    # obj = MinStack()
    # obj.push(x)
    # obj.pop()
    # param_3 = obj.top()
    # param_4 = obj.getMin()
  • 相关阅读:
    String系列
    java初始化构造函数调用顺序
    转发和重定向的区别
    HttpServletResponse对象
    JSP九大隐式对象
    关于异常
    MySQL下载、安装及启动
    MySQL的启动
    MySQL下载及安装
    U盘安装Win7操作系统
  • 原文地址:https://www.cnblogs.com/rosyYY/p/11003635.html
Copyright © 2011-2022 走看看