package main
import "math"
var stack []int
var minStack = []int{math.MaxInt}
/*
*
stack:正常存储元素
minStack:存当前push进去的最小值,每次弹出是直接获取top元素就是最小值
*/
func Push(node int) {
stack = append(stack, node)
min := minNum(node, minStack[len(minStack) - 1])
minStack = append(minStack, min)
}
func Pop() int {
minStack = minStack[:len(minStack)-1]
res := stack[len(stack)-1]
stack = stack[:len(stack)-1]
return res
}
func Top() int {
return stack[len(stack)-1]
}
func Min() int {
return minStack[len(minStack)-1]
}
func minNum(a, b int) int {
if a < b {
return a
}
return b
}