题解 | #包含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] }