题解 | #用两个栈实现队列#

用两个栈实现队列

https://www.nowcoder.com/practice/54275ddae22f475981afa2244dd448c6

package main

var stack1 []int
var stack2 []int

var len1 = 0
var len2 = 0

func Push(node int) {
	if len(stack1) <= len1 {
		stack1 = append(stack1, node)
	} else {
		stack1[len1] = node
	}
	len1++
}

func Pop() int {
	if len2 <= 0 {
		transfer()
	}
	len2--
	return stack2[len2]
}

func transfer() {
	for len1 > 0 {
		if len(stack2) <= len2 {
			stack2 = append(stack2, stack1[len1-1])
		} else {
			stack2[len2] = stack1[len1-1]
		}
		len1--
		len2++
	}
}

全部评论

相关推荐

大厂的边缘业务去了也没啥用,也得不到任何成长,尤其是审核、中台这种价值产出不清楚的,别被大厂光环蒙蔽了双眼,如果你找实习工作,优先找"离钱近的业务",钱多的业务福利年终奖啥的都不会差的
陈100:呵呵。 你在大厂工作2年,后面准备好,可以随便跳很多公司。 去小厂,现在拿到所谓多的钱,有啥用啊,未来没有了。 而且应届生,工作没几年的,也不是赚钱的时间。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务