leetcode_155.最小スタックpython

2354 ワード

タイトルの説明
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を返します.
    コード#コード#
    1つの宿屋.
    class MinStack(object):
    
        def __init__(self):
            """
            initialize your data structure here.
            """
            self.stack = []
    
        def push(self, x):
            """
            :type x: int
            :rtype: None
            """
            self.stack.append(x)
            
    
        def pop(self):
            """
            :rtype: None
            """
            
            if len(self.stack) == 0:
                return None
            else:
                self.stack.pop(-1)
    
    
        def top(self):
            """
            :rtype: int
            """
            if len(self.stack) == 0:
                return None
            else:
                return self.stack[-1]
            
    
        def getMin(self):
            """
            :rtype: int
            """
            return min(self.stack)
    
    
    
    

    2つの宿屋.
    class MinStack(object):
    
        def __init__(self):
            """
            initialize your data structure here.
            """
            self.result = []
            self.min = []
            
    
        def push(self, x):
            """
            :type x: int
            :rtype: void
            """
            self.result.append(x)
            if len(self.min) == 0:
                self.min.append(x)
            else:
                if x < self.min[-1]:
                    self.min.append(x)
                else:
                    self.min.append(self.min[-1])
            
    
        def pop(self):
            """
            :rtype: void
            """
            self.min.pop()
            return self.result.pop()
            
    
        def top(self):
            """
            :rtype: int
            """
            return self.result[-1]
            
    
        def getMin(self):
            """
            :rtype: int
            """
            return self.min[-1]