题目描述
解题思路
初始化
初始化的时候构造一个普通栈和最小栈,这个最小栈的特点在于,只要发现比最后一个元素小的元素。就把这个元素放到最小栈的最后。
push
push元素的时候,普通栈直接入栈,如果入栈的元素比最小栈的最后一个元素小,则这个元素也入最小栈,或者最小栈为空,这个元素也入最小栈。
pop
首先普通栈pop,如果要pop的元素和最小栈的最后一个元素的值相等,最小栈也要pop。
top
直接返回普通栈的最后一个元素。
getMin
直接返回最小栈的最后一个元素。
AC代码
var MinStack = function() {
// 最下栈的核心就是构造两个栈,一个普通栈,一个最小栈
this.stack = [];
this.min_stack