笔记day10"/>
刷题笔记day10
232.用栈实现队列
思路就是用一个切片,每次追加在后面,但是取值从最前面取值。
// 用两个栈来实现队列的先进先出的效果
// peek、push、pop、emptytype MyQueue struct {push []intpop []int
}func Constructor() MyQueue {return MyQueue {push: []int{},pop: []int{},}
}func (this *MyQueue) pushToPop() {// pop 必须是为空的,才可以进行移动if len(this.pop) == 0 {push_length := len(this.push) - 1for push_length >= 0 {this.pop = append(this.pop, this.push[push_length])this.push = this.push[:push_length]push_length--}}
}func (this *MyQueue) Push(x int) {// this.push = append(this.push, x)// 移动this.pushToPop()
}func (this *MyQueue) Pop() int {// 先移动this.pushToPop()// if len(this.pop) <= 0 {// return // }top := this.pop[len(this.pop) - 1]this.pop = this.pop[:len(this.pop) - 1]return top
}func (this *MyQueue) Peek() int {// 先移动this.pushToPop()return this.pop[len(this.pop) - 1]
}func (this *MyQueue) Empty() bool {this.pushToPop()return len(this.pop) <= 0
}/*** Your MyQueue object will be instantiated and called as such:* obj := Constructor();* obj.Push(x);* param_2 := obj.Pop();* param_3 := obj.Peek();* param_4 := obj.Empty();*/
225. 用队列实现栈
更多推荐
刷题笔记day10
发布评论