美文网首页
leetcode155. Min Stack

leetcode155. Min Stack

作者: 就是果味熊 | 来源:发表于2020-07-01 20:52 被阅读0次

    原题链接https://leetcode.com/problems/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 1:

    Input
    ["MinStack","push","push","push","getMin","pop","top","getMin"]
    [[],[-2],[0],[-3],[],[],[],[]]

    Output
    [null,null,null,null,-3,null,0,-2]

    Explanation
    MinStack minStack = new MinStack();
    minStack.push(-2);
    minStack.push(0);
    minStack.push(-3);
    minStack.getMin(); // return -3
    minStack.pop();
    minStack.top(); // return 0
    minStack.getMin(); // return -2
    创建一个最小值栈专门储存最小值,随着栈的更新更新最小值栈。

    class MinStack:
    
        def __init__(self):
            """
            initialize your data structure here.
            """
            self.stack = []
            self.minstack = []
    
        def push(self, x: int) -> None:
            self.stack.append(x)
            if self.minstack:
                if self.minstack[-1] >= x:
                    self.minstack.append(x)
            else:
                self.minstack.append(x)
    
        def pop(self) -> None:
            if self.stack:
                a = self.stack.pop()
                
                if a == self.minstack[-1]:
                    self.minstack.pop()
    
        def top(self) -> int:
            if self.stack:
                return self.stack[-1]
            return []
    
        def getMin(self) -> int:
            if self.minstack:
                return self.minstack[-1]
            return []
    

    相关文章

      网友评论

          本文标题:leetcode155. Min Stack

          本文链接:https://www.haomeiwen.com/subject/lezhqktx.html