栈和队列---设计一个有getMin功能的栈
来源:互联网 发布:效果图设计软件 编辑:程序博客网 时间:2024/05/19 05:03
【题目】
实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作。
【要求】
1、 pop、push、getMin操作的时间复杂度都是O(1)。
2.、设计的栈类型可以使用现成的栈结构
【代码实现】
#python3.5class NewStack1: def __init__(self): self.stackData = [] self.stackMin = [] def push(self, newNum): self.stackData.append(newNum) if len(self.stackMin) == 0 or newNum <= self.getMin(): self.stackMin.append(newNum) def pop(self): if len(self.stackData) == 0: raise Exception("stack is empty!") value = self.stackData.pop() if self.getMin() == value: self.stackMin.pop() return value def getMin(self): if len(self.stackMin) == 0: raise Exception("stack is empty!") return self.stackMin[-1]
class NewStack2: def __init__(self): self.stackData = [] self.stackMin = [] def push(self, newNum): self.stackData.append(newNum) if len(self.stackMin) == 0 or newNum < self.getMin(): self.stackMin.append(newNum) else: self.stackMin.append(self.getMin()) def pop(self): if len(self.stackData) == 0: raise Exception("Stack is empty!") self.stackMin.pop() return self.stackData.pop() def getMin(self): if len(self.stackMin) == 0: raise Exception("Stack is empty!") return self.stackMin[-1]
阅读全文
2 0
- 栈和队列 设计一个有getMin()功能的栈
- 栈和队列---设计一个有getMin功能的栈
- 栈和队列之设计一个有getMin(得到最小值)功能的栈
- 1_1栈和队列_设计一个有Getmin功能的栈
- 1栈和队列--设计一个有getMin功能的栈
- 栈和队列——设计一个有getMin功能的栈(一)
- 栈和队列——设计一个有getMin功能的栈(二)
- (一)栈和队列--设计一个有getMin功能的栈 java实现
- 设计一个有getMin功能的栈
- 设计一个有getMin功能的栈
- 设计一个有getMin功能的栈
- 设计一个有getMin功能的栈
- 设计一个有getMin功能的栈
- 设计一个有getMin功能的栈
- 设计一个有getMin功能的栈
- 设计一个有getMin功能的栈
- 设计一个有getMin功能的栈
- 设计一个有getMin功能的栈
- 在自己的页面嵌入谷歌的定位地图
- (转载)35 个 Java 代码性能优化总结
- 关于js上传的一个例子
- linux内核模块的编写
- android NoSql数据库io.paperdb:paperdb使用方法
- 栈和队列---设计一个有getMin功能的栈
- LeetCode #39
- sql 事务
- could not initialize proxy
- POJ 1236 Network of Schools (Tarjan算法求强连通分量+缩点) 代码详解
- HDU 6203ping ping ping(LCA+贪心)
- 关于mysql的日期的相关函数(一)
- Xcode 9.0 报错, Safe Area Layout Guide Before IOS 9.0
- Arduino+W5100+新浪云SAE(开发语言:Python)+微信公众平台(实现LED控制)