Java code
class MyCircularDeque {
private int front;
private int rear;
private int size;
private int[] arr;
private int maxSize;
public MyCircularDeque(int k) {
front = 0;
rear = 0;
size = 0;
maxSize = k;
arr = new int[maxSize];
}
public boolean insertFront(int value) {
if(isFull()) {
return false;
}
front = (front - 1 + maxSize) % maxSize;
arr[front] = value;
size++;
return true;
}
public boolean insertLast(int value) {
if(isFull()) {
return false;
}
arr[rear] = value;
rear = (rear + 1) % maxSize;
size++;
return true;
}
public boolean deleteFront() {
if(isEmpty()) {
return false;
}
front = (front + 1) % maxSize;
size--;
return true;
}
public boolean deleteLast() {
if(isEmpty()) {
return false;
}
rear = (rear - 1 + maxSize) % maxSize;
size--;
return true;
}
public int getFront() {
if(isEmpty()) {
return -1;
}
return arr[front];
}
public int getRear() {
if(isEmpty()) {
return -1;
}
return arr[(rear - 1 + maxSize) % maxSize];
}
public boolean isEmpty() {
if(size > 0) {
return false;
}
return true;
}
public boolean isFull() {
return size == maxSize;
}
}
提交记录
