//最小栈
var MinStack = function () {
this.stack = [];
this.min_stack = [];
};
MinStack.prototype.push = function (x) {
this.stack.push(x);
if (x <= this.min_stack[this.min_stack.length - 1] || this.min_stack.length == 0) {
this.min_stack.push(x);
}
};
MinStack.prototype.pop = function () {
let out = this.stack.pop();
if (this.min_stack[this.min_stack.length - 1] === out) {
this.min_stack.pop(out);
}
};
MinStack.prototype.top = function () {
return this.stack[this.stack.length - 1];
};
MinStack.prototype.GetMin = function () {
return this.min_stack[this.min_stack.length - 1]
};
var arr = new MinStack();
arr.push(3);
arr.push(1);
arr.push(8);
arr.push(2);
console.log(arr.GetMin());
相关文章
- 01-20本机Android BLE实现本质上是同步的吗?
- 01-20git命令行工具实现sourceTree上的各个功能
- 01-20实现一个最简单的VIM文本编辑器(可能有bug,随便写了一个)
- 01-201.(1)编写一个接口ShapePara,要求: 接口中的方法: int getArea():获得图形的面积。int getCircumference():获得图形的周长 (2)编写一个圆类Circle,要求:圆类Circle实现接口ShapePara。 该类包含有成员变量: radius:public 修饰的double类型radius,表示圆的半径。 x:private修饰的double型变量
- 01-20堆的创建、优先队列、topk、堆排序C语言实现
- 01-20使用gevent包实现concurrent.futures.executor 相同的公有方法。组成鸭子类
- 01-20Netty如何实现服务的优雅关闭
- 01-20LeetCode 503:下一个更大的元素|| (单调栈 or 线段树)
- 01-20MobPush—想实现精细化运营?什么样的推送Push才够靠谱强势
- 01-20王道数据结构:顺序表上基本操作的实现