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()
  • 相关阅读:
    设计模式-抽象工厂
    设计模式-工厂方法
    设计模式-简单工厂
    设计模式-单例模式
    设计模式使用指南
    适合Java程序员看的UML学习手册
    第六周 Java8新特性
    deepin15.11系统使用罗技k380键盘
    动态规划系列之六01背包问题
    《比勤奋更重要的是底层思维》
  • 原文地址:https://www.cnblogs.com/rosyYY/p/11003635.html
Copyright © 2011-2022 走看看