LeetCode——最小栈(辅助栈)

本文介绍了如何使用辅助栈解决LeetCode中的最小栈问题。在初始化时创建两个栈,普通栈用于常规操作,最小栈记录最小元素。push操作时,若新元素小于最小栈顶元素则入最小栈;pop时,若弹出元素等于最小栈顶元素,最小栈也弹出;top返回普通栈顶元素;getMin返回最小栈顶元素。通过这种方法,可以有效地实现最小值的获取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述

image.png

解题思路

初始化

初始化的时候构造一个普通栈和最小栈,这个最小栈的特点在于,只要发现比最后一个元素小的元素。就把这个元素放到最小栈的最后。

push

push元素的时候,普通栈直接入栈,如果入栈的元素比最小栈的最后一个元素小,则这个元素也入最小栈,或者最小栈为空,这个元素也入最小栈。

pop

首先普通栈pop,如果要pop的元素和最小栈的最后一个元素的值相等,最小栈也要pop。

top

直接返回普通栈的最后一个元素。

getMin

直接返回最小栈的最后一个元素。

AC代码

var MinStack = function() {
   
   
  // 最下栈的核心就是构造两个栈,一个普通栈,一个最小栈
  this.stack = [];
  this.min_stack 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值