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

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务