题解 | #包含min函数的栈#

包含min函数的栈

https://www.nowcoder.com/practice/4c776177d2c04c2494f2555c9fcc1e49

package main

import "math"

var stack []int
var minStack = []int{math.MaxInt}

/*
*
stack:正常存储元素
minStack:存当前push进去的最小值,每次弹出是直接获取top元素就是最小值
*/
func Push(node int) {
	stack = append(stack, node)
	min := minNum(node, minStack[len(minStack) - 1])
	minStack = append(minStack, min)
}

func Pop() int {
	minStack = minStack[:len(minStack)-1]
	res := stack[len(stack)-1]
	stack = stack[:len(stack)-1]
	return res
}

func Top() int {
	return stack[len(stack)-1]
}

func Min() int {
	return minStack[len(minStack)-1]
}

func minNum(a, b int) int {
	if a < b {
		return a
	}
	return b
}

全部评论

相关推荐

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