码迷,mamicode.com
首页 > 其他好文 > 详细

包含min函数的栈

时间:2019-03-02 18:53:08      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:pre   end   复杂   push   return   定义   self   nod   包含   

题目描述
定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。

解题思路:
使用一个辅助栈,当当前数字比辅助栈顶元素小的时候,当前元素进栈;否则将辅助栈的栈顶元素进栈。

python solution:

# -*- coding:utf-8 -*-
class Solution:
    def __init__(self):
        self.stack = []
        self.support = []
        
    def push(self, node):
        if len(self.stack)==0:
            self.stack.append(node)
            self.support.append(node)
        else:
            self.stack.append(node)
            if node<self.support[-1]:
                self.support.append(node)
            else:
                self.support.append(self.support[-1])
            
    def pop(self):
        self.support.pop(-1)
        return self.stack.pop(-1)
        
    def top(self):
        return self.stack[-1]
    
    def min(self):
        return self.support[-1]

包含min函数的栈

标签:pre   end   复杂   push   return   定义   self   nod   包含   

原文地址:https://www.cnblogs.com/bernieloveslife/p/10424082.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!