当前位置: 首页 > article >正文

LeetCode热题100- 最小栈【JavaScript讲解】

“日日行,不怕千万里;常常做,不怕千万事。” —— 《格言联璧·处事》

oi!!栈的知识点在这里!!!点击跳转!!!

最小栈讲解目录:

  • 题目:
  • 题目实例解释:
  • 题解:
  • js代码解析:
  • 通过:

题目:

在这里插入图片描述

题目实例解释:

在这里插入图片描述

题解:

  • Stack增加使用 push() 方法
  • Stack删除使用 pop() 方法
  • 所以push和pop方法就有了,top方法就是求栈顶,即表尾的数。
  • 主要是getMain如何求解,我们可以每次将最小数和前一个数作比较,哪个数字小就存储哪个数字,这样每次取出都是最小数了。

js代码解析:


var MinStack = function() {
    this.stack = [];
    this.min_stack = [Infinity];
};

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

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

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

/**
 * @return {number}
 */
MinStack.prototype.getMin = function() {
    return this.min_stack.at(-1);
};

/** 
 * Your MinStack object will be instantiated and called as such:
 * var obj = new MinStack()
 * obj.push(val)
 * obj.pop()
 * var param_3 = obj.top()
 * var param_4 = obj.getMin()
 */

通过:

在这里插入图片描述


http://www.kler.cn/a/563397.html

相关文章:

  • RMII(Reduced Media Independent Interface)详解
  • Java Junit框架
  • libwebsockets交叉编译全流程
  • go-基础笔记
  • 基于SpringBoot+mybatisplus+vueJS企业数据保护系统设计与实现
  • 关于在java项目部署过程MySQL拒绝连接的分析和解决方法
  • MongoDB#常用语句
  • OpenCV开源机器视觉软件
  • 计算机毕业设计SpringBoot+Vue.js车辆管理系统(源码+文档+PPT+讲解)
  • AGI的三重架构假说:模块化认知系统设计——通向通用人工智能的工程化路径
  • 阿里重磅模型深夜开源;DeepSeek宣布开源DeepGEMM;微软开源多模态AI Agent基础模型Magma...|网易数智日报
  • HTTP与网络安全
  • 阻抗和电阻
  • 浅析 Redis 分片集群 Cluster 原理、手动搭建、动态伸缩集群、故障转移
  • 【自学笔记】Vue基础知识点总览-持续更新
  • flutter boost接入
  • go 查看版本
  • 【算法通关村 Day12】字符串
  • Express + MongoDB 实现更新用户时用户名变化验证数据库是否存在,不变不验证
  • Linux:文本处理三剑客之sed命令用法详解