摘要:题目描述设计一个支持,,操作,并能在常数时间内检索到最小元素的栈。删除栈顶的元素。检索栈中的最小元素。示例返回返回返回代码实现
题目描述
设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。
push(x) -- 将元素 x 推入栈中。 pop() -- 删除栈顶的元素。 top() -- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。
示例:
MinStack minStack = new MinStack(); minStack.push(-2); minStack.push(0); minStack.push(-3); minStack.getMin(); --> 返回 -3. minStack.pop(); minStack.top(); --> 返回 0. minStack.getMin(); --> 返回 -2.代码实现
/**
* initialize your data structure here.
*/
var MinStack = function() {
this.s1 = [];
this.s2 = [];
};
/**
* @param {number} x
* @return {void}
*/
MinStack.prototype.push = function(x) {
let s2 = this.s2,
s2Len = s2.length,
s1 = this.s1;
let curMin = s2[s2Len-1];
if(curMin < x)
s2.push(curMin);
else
s2.push(x);
s1.push(x);
};
/**
* @return {void}
*/
MinStack.prototype.pop = function() {
let s1 = this.s1,
s1Len = s1.length,
s2 = this.s2,
s2Len = s2.length;
if(s1Len === 0)
return undefined;
s2.pop();
return s1.pop();
};
/**
* @return {number}
*/
MinStack.prototype.top = function() {
let s1 = this.s1,
s1Len = s1.length;
if(s1.length === 0)
return undefined;
return s1[s1Len-1];
};
/**
* @return {number}
*/
MinStack.prototype.getMin = function() {
let s2 = this.s2,
s2Len = s2.length;
if(s2Len === 0)
return undefined;
return s2[s2Len-1];
};
/**
* Your MinStack object will be instantiated and called as such:
* var obj = Object.create(MinStack).createNew()
* obj.push(x)
* obj.pop()
* var param_3 = obj.top()
* var param_4 = obj.getMin()
*/
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/97084.html
摘要:删除栈顶的元素。可以另外新建一个栈来顺序存入数据最小值。另外在数据入栈时需要判断该值是否比辅助栈的栈顶元素的值更小,如果更小,也应该将它加入辅助栈。并且需要判断辅助栈是否为空,在不空的条件下才可以取栈顶元素比较,否则会溢出。 LeetCode 155:最小栈 Min Stack 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) -- ...
摘要:题目地址题目描述设计一个支持,,操作,并能在常数时间内检索到最小元素的栈。将元素推入栈中。删除栈顶的元素。示例返回返回返回解答每次入栈都放入两个元素,分别是当前元素,和当前的最小元素因此放入之前需要和当前值进行比较。 题目地址:https://leetcode-cn.com/probl...题目描述:设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。 p...
摘要:题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的函数。 题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。 分析 该题目要求实现一个带有返回当前栈中最小元素功能的数据结构,首先会想到使用一个变量保存当前最小元素的下标,但是仔细一想,如果当前最小元素刚好在栈顶,此时执行pop操作,那么最小元素会被弹出,新的最小元素又上哪儿找呢?比较暴力的方...
摘要:正如我标题所说,简历被拒。看了我简历之后说头条竞争激烈,我背景不够,点到为止。。三准备面试其实从三月份投递简历开始准备面试到四月份收,也不过个月的时间,但这都是建立在我过去一年的积累啊。 本文是 无精疯 同学投稿的面试经历 关注微信公众号:进击的java程序员K,即可获取最新BAT面试资料一份 在此感谢 无精疯 同学的分享 目录: 印象中的头条 面试背景 准备面试 ...
阅读 3173·2021-11-24 09:39
阅读 3404·2021-09-29 09:34
阅读 3863·2021-09-24 10:23
阅读 1940·2021-09-22 15:41
阅读 1905·2019-08-30 15:55
阅读 3729·2019-08-30 13:58
阅读 2830·2019-08-30 13:11
阅读 1830·2019-08-29 12:31