• 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()
  • 相关阅读:
    [Python] 糗事百科文本数据的抓取
    [Python] 文件扫描
    [Python] 根据博客园用户名抓取其所有文章的标题及其链接
    ParagraphString
    IrregularGridCollectionView处理不定宽度的标签cell
    Java多线程与并发
    设计模式之代理模式
    javascript设置百分比保留两位小数。
    Java基础知识总结(异常机制、集合、JUC、IO)
    Java底层知识JVM、GC
  • 原文地址:https://www.cnblogs.com/rosyYY/p/11003635.html
Copyright © 2020-2023  润新知