1.包含min函数的栈
一开始自己没看懂思路,去看了讨论区意思是要两个栈,后来想明白了
要用多一个栈存储较小值
多一个栈的push条件:栈为空或者小于等于栈顶的元素
出栈条件:栈不为空且等于栈顶的元素
# -*- coding: utf-8 -*-
"""
Created on Sun Dec 22 14:41:47 2019
@author: Shiyi Chen
"""
# -*- coding:utf-8 -*-
class Solution:
def __init__(self):
self.arr=[]
self.mini=[]
def push(self, node):
# write code here
self.arr.append(node)
if self.mini:
mix=self.mini[-1]
if node<=mix:
self.mini.append(node)
else:
self.mini.append(node)
def pop(self):
# write code here
if self.arr:
if self.arr[-1]==self.mini[-1]:
self.mini.pop()
return self.arr.pop()
else:
return None
def top(self):
# write code here
if self.arr:
return self.arr[-1]
else:
return None
def min(self):
# write code here
if self.mini:
return self.mini[-1]
else:
return None
就是一只白 发布了39 篇原创文章 · 获赞 6 · 访问量 2万+ 私信 关注