摘要:题目描述设计一个支持,,操作,并能在常数时间内检索到最小元素的栈。删除栈顶的元素。检索栈中的最小元素。示例返回返回返回代码实现
题目描述
设计一个支持 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面试资料一份 在此感谢 无精疯 同学的分享 目录: 印象中的头条 面试背景 准备面试 ...
阅读 2950·2021-11-24 09:39
阅读 2858·2021-09-29 09:34
阅读 3549·2021-09-24 10:23
阅读 1731·2021-09-22 15:41
阅读 1690·2019-08-30 15:55
阅读 3506·2019-08-30 13:58
阅读 2614·2019-08-30 13:11
阅读 1662·2019-08-29 12:31