剑指offer包含min函数的栈python
Posted 小小文艺范
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer包含min函数的栈python相关的知识,希望对你有一定的参考价值。
题目描述
定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。
思路
定义两个栈,一个保存正常的数据,另一个用来记录当前的最小元素
代码
# -*- coding:utf-8 -*- class Solution: def __init__(self): self.stack1 = [] self.stack2 = [] self.cur = -1 def push(self, node): # write code here if self.cur == -1:#第一个 self.stack1.append(node) self.stack2.append(node) self.cur+=1 else: self.stack1.append(node) if self.stack2[-1] <= node: self.stack2.append(self.stack2[-1]) else: self.stack2.append(node) self.cur+=1 def pop(self): # write code here self.cur -= 1 self.stack2.pop() return self.stack1.pop() def top(self): # write code here return self.stack1[-1] def min(self): # write code here return self.stack2[-1]
以上是关于剑指offer包含min函数的栈python的主要内容,如果未能解决你的问题,请参考以下文章
Python描述 LeetCode 剑指 Offer 30. 包含min函数的栈