最小栈

设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。

实现 MinStack 类:

  • MinStack() 初始化堆栈对象。
  • void push(int val) 将元素val推入堆栈。
  • void pop() 删除堆栈顶部的元素。
  • int top() 获取堆栈顶部的元素。
  • int getMin() 获取堆栈中的最小元素。
function MinStack() {
    this.stack = []
    this.minValue = [Number.MAX_VALUE]
};

/** 
 * @param {number} val
 * @return {void}
 */
MinStack.prototype.push = function (val) {
    this.stack.push(val)
    this.minValue.push(Math.min(val, this.minValue[this.minValue.length - 1]))
};

/**
 * @return {void}
 */
MinStack.prototype.pop = function () {
    this.minValue.pop()
    return this.stack.pop()
};

/**
 * @return {number}
 */
MinStack.prototype.top = function () {
    return this.stack[this.stack.length - 1]
};

/**
 * @return {number}
 */
MinStack.prototype.getMin = function () {
    return this.minValue[this.minValue.length - 1]
};

  

posted @ 2023-02-18 19:11  671_MrSix  阅读(12)  评论(0编辑  收藏  举报