【JS】设计getMin功能的栈-双栈

设计getMin功能的栈

http://www.nowcoder.com/questionTerminal/c623426af02d4c189f92f2a99647bd34

设计一个普通的栈,还有一个存储着最小值的栈。
每次push和pop时拿当前元素和栈顶比较,相应出栈进栈即可。

/**
 * return a array which include all ans for op3
 * @param op int整型二维数组 operator
 * @return int整型一维数组
 */
function getMinStack( op ) {
  let stack = [];
  let minStack = [];
  let res = [];
  for (let opr of op) {
    const [opt, val] = opr;
    switch (opt) {
      case 1:
        stack.push(val);
        if (val <= minStack[minStack.length - 1] || minStack.length <= 0) minStack.push(val);
        break;
      case 2:
        let popVal = stack.pop();
        if (popVal === minStack[minStack.length - 1]) minStack.pop();
        break;
      case 3:
        let minVal = minStack[minStack.length - 1];
        res.push(minVal)
        break;
    }
  }
  return res;
}
module.exports = {
    getMinStack : getMinStack
};
全部评论

相关推荐

昨天 16:00
门头沟学院 Java
点赞 评论 收藏
分享
白火同学:大二有这水平很牛了,可以适当对关键信息加粗一点,比如关键技术、性能指标之类的。
点赞 评论 收藏
分享
Southyeung:我说一下我的看法(有冒犯实属抱歉):(1)简历不太美观,给我一种看都不想看的感觉,感觉字体还是排版问题;(2)numpy就一个基础包,机器学习算法是什么鬼?我感觉你把svm那些写上去都要好一点。(2)课程不要写,没人看,换成获奖经历;(3)项目太少了,至少2-3个,是在不行把网上学习的也写上去。
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务