站长权重,最好的购物平台排行榜,图片制作器手机版在线,公司网站首页怎么做题目 思路
1.一种是用双端队列#xff08;Deque#xff09;#xff0c;直接就可以调用很多现成的方法#xff0c;非常方便。
2.另一种是用普通的队列#xff08;Queue#xff09;,要实现栈的先入后出#xff0c;可以将最后一个元素的前面所有元素出队#xff0c;然后…题目 思路
1.一种是用双端队列Deque直接就可以调用很多现成的方法非常方便。
2.另一种是用普通的队列Queue,要实现栈的先入后出可以将最后一个元素的前面所有元素出队然后再重新入队到最后一个元素的后面这样就实现了先入后出。
举例入队是 1、2、3出去我们要让3先出去只能先让1、2出去重新入队。这样才能让3先出去。 基础知识
queue的常用方法 Deque(双端队列)常用方法
Deque是一个双端队列接口继承自Queue接口Deque的实现类是LinkedList、ArrayDeque、LinkedBlockingDeque其中LinkedList是最常用的。 补充插入第一个元素还可以用push()方法。删除第一个元素还可以用pop()方法
//双端队列
import java.util.ArrayDeque;
import java.util.Deque;//leetcode submit region begin(Prohibit modification and deletion)
class MyStack {DequeInteger quel;public MyStack() {quel new ArrayDeque();}public void push(int x) {quel.addLast(x);}public int pop() {return quel.removeLast();}public int top() {return quel.peekLast();}public boolean empty() {return quel.isEmpty();}
}//使用一个普通队列
import java.util.ArrayDeque;
import java.util.Deque;
import java.util.LinkedList;
import java.util.Queue;//leetcode submit region begin(Prohibit modification and deletion)
class MyStack {QueueInteger queue;public MyStack() {queue new LinkedList();}public void push(int x) {queue.add(x);}public int pop() {int size queue.size();while (size 1) {queue.add(queue.poll());size--;}return queue.poll();}public int top() {int size queue.size();while (size 1) {queue.add(queue.poll());size--;}int res queue.poll();queue.add(res);return res;}public boolean empty() {return queue.isEmpty();}
}