美文网首页剑指offer-python
面试题30:包含min函数的栈

面试题30:包含min函数的栈

作者: 小歪与大白兔 | 来源:发表于2018-07-02 17:08 被阅读0次

    题目描述:

    定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。

    解题思路:

    引入一个辅助栈,用于存储每次的最小元素。

    # -*- coding:utf-8 -*-
    class Solution:
        def __init__(self):
            self.stack = []
            self.minStack = []
        def push(self, node):
            self.stack.append(node)
            #别忘了not self.minStack这个条件
            if not self.minStack or self.minStack[-1]>node:
                self.minStack.append(node)
            else:
                self.minStack.append(self.minStack[-1])
        def pop(self):
            # write code here
            if self.stack:
                self.stack.pop()
                self.minStack.pop()
        def top(self):
            # write code here
            if self.stack:
                return self.stack[-1]
            else:
                return None
        def min(self):
            # write code here
            if self.minStack:
                return self.minStack[-1]
            else:
                return None
    

    相关文章

      网友评论

        本文标题:面试题30:包含min函数的栈

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