题解 | 包含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.

查看19道真题和解析