剑指 Offer 30. 包含min函数的栈
和力扣155. 最小栈一致
type MinStack struct {stack []int //存储栈min []int //辅助储存栈,存储最小值}/** initialize your data structure here. */func Constructor() MinStack {return MinStack{stack: []int{},min: []int{},}}func (this *MinStack) Push(x int) {this.stack = append(this.stack, x)if len(this.min) == 0 || x <= this.min[len(this.min)-1] { // 没有元素或者x小于最小值的时候,append到min最后this.min = append(this.min, x)}else {this.min = append(this.min, this.min[len(this.min)-1]) // 否则继续将上一个最小值append到min}}func (this *MinStack) Pop() {this.stack = this.stack[:len(this.stack)-1]this.min = this.min[:len(this.min)-1]}func (this *MinStack) Top() int {if len(this.stack) == 0 {return 0}return this.stack[len(this.stack)-1]}func (this *MinStack) Min() int {if len(this.min) > 0 {return this.min[len(this.min)-1]}return 0}
