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

包含min函数的栈

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

package main

var sta = make([]int, 1)
var top1 = 0
var miSt = make([]int, 1)
var top2 = 0

func Push(node int) {
	if len(sta) == top1 {
		sta = append(sta, node)
	} else {
		sta[top1] = node
	}
	if top2 == 0 || sta[miSt[top2-1]] > node {
		if len(miSt) == top2 {
			miSt = append(miSt, top1)
		} else {
			miSt[top2] = top1
		}
		top2++
	}
	top1++
}
func Pop() {
	top1--
	if top2 > 0 && miSt[top2-1] == top1 {
		top2--
	}
	
}
func Top() int {
	return sta[top1-1]
}
func Min() int {
	return sta[miSt[top2-1]]
}

全部评论

相关推荐

TP-LINK 前端工程师 年包大概20出头 本科
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务