LeetCode 5560. 设计前中后队列
原题链接
中等
作者:
ACSaber
,
2020-11-29 00:10:20
,
所有人可见
,
阅读 316
class FrontMiddleBackQueue {
private List<Integer> list;
public FrontMiddleBackQueue() {
list = new ArrayList<Integer>(4000);
}
public void pushFront(int val) {
if (list.isEmpty()) {
pushBack(val);
} else {
list.add(0, val);
}
}
public void pushMiddle(int val) {
if (list.isEmpty()) {
pushBack(val);
} else {
int size = list.size();
if (size % 2 != 0) {
size -= 1;
}
int target = size / 2;
list.add(target, val);
}
}
public void pushBack(int val) {
list.add(val);
}
public int popFront() {
if (list.isEmpty()) return -1;
Integer i = list.remove(0);
return i;
}
public int popMiddle() {
if (list.isEmpty()) return -1;
int size = list.size() - 1;
int target = size / 2;
Integer i = list.remove(target);
return i;
}
public int popBack() {
if (list.isEmpty()) return -1;
Integer i = list.remove(list.size() - 1);
return i;
}
}