0
点赞
收藏
分享

微信扫一扫

155. 最小栈、Leetcode的Go实现

艾米吖 2022-02-07 阅读 31

155. 最小栈

设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。

示例:

提示:

切片实现栈,遍历切片,获取最小值:

type MinStack struct {
    stack []int
}


func Constructor() MinStack {
    return MinStack{}
}


func (this *MinStack) Push(val int)  {
    // 插入
    n:=len(this.stack)
    this.stack=append(this.stack,val)
    // 将前面的元素重新逆序进入队列
    for ; n > 0; n-- {
        this.stack = append(this.stack, this.stack[0])
        this.stack = this.stack[1:]
    }
}


func (this *MinStack) Pop()  {
    this.stack=this.stack[1:]
}


func (this *MinStack) Top() int {
    return this.stack[0]
}

func (this *MinStack) GetMin() int {
    min := this.stack[0]
    for _,v:=range this.stack{
        if v<min {
            min=v
        }
    }
    return min
}


/**
 * 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();
 */
举报

相关推荐

0 条评论