剑指offer 21 包含min函数的栈

来源:互联网 发布:柏原崇 知乎 编辑:程序博客网 时间:2024/06/05 20:53

题目描述
定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
思路:
维护一个最小栈,保存当前栈下最小的元素。

# -*- coding:utf-8 -*-class Solution:    def __init__(self):        self.stack = []        self.minstack = []        self.topindex = -1    def push(self, node):        # write code here        self.stack.append(node)        if self.topindex == -1:            self.minstack.append(node)        else:            if node < self.minstack[self.topindex]:                self.minstack.append(node)            else:                self.minstack.append(self.minstack[self.topindex])        self.topindex += 1    def pop(self):        # write code here        self.topindex -= 1        self.stack.pop(-1)        self.minstack.pop(-1)    def top(self):        # write code here        return self.stack[self.topindex]    def min(self):        # write code here        return self.minstack[self.topindex]
原创粉丝点击