题解 | #包含min函数的栈#
包含min函数的栈
https://www.nowcoder.com/practice/4c776177d2c04c2494f2555c9fcc1e49
package main
type stack struct {
MinValueStack []int
MinValueStackIndex int
ValueStack []int
ValueStackIndex int
}
var s = stack{
MinValueStack: make([]int, 301),
MinValueStackIndex: -1,
ValueStack: make([]int, 301),
ValueStackIndex: -1,
}
func Push(node int) {
if s.MinValueStackIndex == -1 || s.MinValueStack[s.MinValueStackIndex] >= node {
s.MinValueStackIndex++
s.MinValueStack[s.MinValueStackIndex] = node
}
s.ValueStackIndex++
s.ValueStack[s.ValueStackIndex] = node
}
func Pop() {
if s.MinValueStack[s.MinValueStackIndex] == s.ValueStack[s.ValueStackIndex] {
s.MinValueStackIndex--
}
s.ValueStackIndex--
}
func Top() int {
return s.ValueStack[s.ValueStackIndex]
}
func Min() int {
return s.MinValueStack[s.MinValueStackIndex]
}