剑指offer-定义栈实现栈最小元素的min函数
2017-11-27 20:27
141 查看
转载源地址:
https://www.nowcoder.com/questionTerminal/4c776177d2c04c2494f2555c9fcc1e49
来源:牛客网
==解法1
这个Yannyezixin 应该是解释的比较好的一个了,解释如下:
Yannyezixin:
思路:利用一个辅助栈来存放最小值
每入栈一次,就与辅助栈顶比较大小,如果小就入栈,如果大就入栈当前的辅助栈顶
当出栈时,辅助栈也要出栈
这种做法可以保证辅助栈顶一定都当前栈的最小值
==解法2
这个是,牛客网华科平凡回答的,用的python列表函数来操作的,很简单。
https://www.nowcoder.com/questionTerminal/4c776177d2c04c2494f2555c9fcc1e49
来源:牛客网
==解法1
# -*- coding:utf-8 -*- class Solution: def __init__(self): self.stack = [] self.assist = [] def push(self, node): min = self.min() if not min or node < min: self.assist.append(node) else: self.assist.append(min) self.stack.append(node) def pop(self): if self.stack: self.assist.pop() return self.stack.pop() def top(self): # write code here if self.stack: return self.stack[-1] def min(self): # write code here if self.assist: return self.assist[-1]
这个Yannyezixin 应该是解释的比较好的一个了,解释如下:
Yannyezixin:
思路:利用一个辅助栈来存放最小值
栈 3,4,2,5,1 辅助栈 3,3,2,2,1
每入栈一次,就与辅助栈顶比较大小,如果小就入栈,如果大就入栈当前的辅助栈顶
当出栈时,辅助栈也要出栈
这种做法可以保证辅助栈顶一定都当前栈的最小值
==解法2
这个是,牛客网华科平凡回答的,用的python列表函数来操作的,很简单。
# -*- coding:utf-8 -*- class Solution: def __init__(self): self.arr=[] def push(self, node): self.arr.append(node) def pop(self): return self.arr.pop() def top(self): return self.arr[-1] def min(self): return min(self.arr)
相关文章推荐
- 剑指offer:定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数
- 剑指offer-定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
- 剑指offer 01-06解答思路以及代码(顺序数组找特定数字,替换空格字符,链表反转输出,重建二叉树,两个栈实现队列效果,旋转数组最小元素)
- 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
- 【剑指Offer】旋转数组的最小元素——JavaScript实现
- 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
- 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
- 剑指offer:旋转数组的最小数字 代码实现
- 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
- 剑指Offer:面试题21——包含min函数的栈(java实现)
- 剑指offer_06_旋转数组的最小数字(递归实现)
- 定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。要求函数min、push以及pop的时间复杂度都是O(1)。
- 剑指offer- 旋转数组的最小元素
- 剑指Offer-29-java实现查找数组中出现次数超过一半的元素
- 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数
- 剑指offer刷题之java实现的把数组排成最小的数
- 剑指offer--面试题21:包含min函数的栈--Java实现
- PHP 定义栈结构,实现min函数,获取栈最小元素,要求时间复杂度为O(1)
- 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。
- 定义栈的数据结构,要求添加一个min函数,能够得到栈的最小元素。o(1)空间的代码实现