题解 | 包含min函数的栈

包含min函数的栈

https://www.nowcoder.com/practice/4c776177d2c04c2494f2555c9fcc1e49

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

这里我们用S1作为主栈,S2作为辅助栈,用来存储最小值。进栈时,S1直接进。进S2时,要看node和S2[-1]的大小。如果node>S2【-1】那么还是进S2[-1],否则把node进栈到S2.

全部评论
点赞 回复 分享
发布于 06-02 13:16 上海

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务