# Your MinStack object will be instantiated and called as such: # obj = MinStack() # obj.push(val) # obj.pop() # param_3 = obj.top() # param_4 = obj.getMin()
func (this *MinStack) Top() int { returnthis.stack[len(this.stack)-1] }
func (this *MinStack) GetMin() int { returnthis.minStack[len(this.minStack)-1] }
func min(x, y int) int { if x < y { return x } return y }
/** * Your MinStack object will be instantiated and called as such: * obj := Constructor(); * obj.Push(val); * obj.Pop(); * param_3 := obj.Top(); * param_4 := obj.GetMin(); */
# Your MinStack object will be instantiated and called as such: # obj = MinStack() # obj.push(val) # obj.pop() # param_3 = obj.top() # param_4 = obj.getMin()
func (this *MinStack) Top() int { if len(this.stack) > 0{ diff := this.stack[len(this.stack)-1] if diff < 0{ top := this.minValue return top }else{ top := diff + this.minValue return top } } return -1 }
func (this *MinStack) GetMin() int { returnthis.minValue }
/** * Your MinStack object will be instantiated and called as such: * obj := Constructor(); * obj.Push(val); * obj.Pop(); * param_3 := obj.Top(); * param_4 := obj.GetMin(); */