当前位置:网站首页>LeetCode - 641 设计循环双端队列(设计)*
LeetCode - 641 设计循环双端队列(设计)*
2022-07-25 15:32:00 【三岁就很萌@D】



class MyCircularDeque {
//底层数组结构
private int[] deque;
//头指针
private int head;
//尾指针
private int tail;
//队列中实际中存放的数的个数
private int size;
//队列容量
private int capacity;
public MyCircularDeque(int k) {
deque = new int[k];
head = 0;
tail = 0;
size = 0;
capacity = k;
}
public boolean insertFront(int value) {
//如果队列已经满了
if(isFull() == true)
return false;
else{
//在头指针指向位置插入value
deque[head] = value;
//头指针向前移动
head = (head -1 + this.capacity) % this.capacity;
//队列值个数加一
size += 1;
return true;
}
}
public boolean insertLast(int value) {
//如果队列已经满了
if(isFull() == true)
return false;
else{
//尾指针向后移动
tail = (tail + 1 + this.capacity) % this.capacity;
//在尾指针指向位置插入value
deque[tail] = value;
//队列值个数加一
size += 1;
return true;
}
}
public boolean deleteFront() {
//如果队列为空
if(isEmpty())
return false;
else{
head = (head + 1) % this.capacity;
size -= 1;
return true;
}
}
public boolean deleteLast() {
//如果队列为空
if(isEmpty())
return false;
else{
tail = (tail -1 + this.capacity) % this.capacity;
size -= 1;
return true;
}
}
public int getFront() {
if(isEmpty())
return -1;
else{
int front = (head + 1) % this.capacity;
return deque[front];
}
}
public int getRear() {
if(isEmpty())
return -1;
else{
return deque[tail];
}
}
public boolean isEmpty() {
return this.size == 0;
}
public boolean isFull() {
return this.capacity == this.size;
}
}
/** * Your MyCircularDeque object will be instantiated and called as such: * MyCircularDeque obj = new MyCircularDeque(k); * boolean param_1 = obj.insertFront(value); * boolean param_2 = obj.insertLast(value); * boolean param_3 = obj.deleteFront(); * boolean param_4 = obj.deleteLast(); * int param_5 = obj.getFront(); * int param_6 = obj.getRear(); * boolean param_7 = obj.isEmpty(); * boolean param_8 = obj.isFull(); */
边栏推荐
猜你喜欢
随机推荐
JVM knowledge brain map sharing
ML - 语音 - 深度神经网络模型
ML - 语音 - 高级语音模型
PAT甲级1152 Google Recruitment (20 分)
ML - 自然语言处理 - 自然语言处理简介
Deadlock gossip
C # fine sorting knowledge points 9 Set 2 (recommended Collection)
LeetCode - 707 设计链表 (设计)
Pytorch框架练习(基于Kaggle Titanic竞赛)
MySQL—常用SQL语句整理总结
<栈模拟递归>
PAT甲级题目目录
Understanding the difference between wait() and sleep()
哪里有搭建flink cdc抽mysql数的demo?
SVD奇异值分解推导及应用与信号恢复
如何解决跨域问题
带你创建你的第一个C#程序(建议收藏)
User defined annotation verification API parameter phone number
为什么PrepareStatement性能更好更安全?
matlab---错误使用 var 数据类型无效。第一个输入参数必须为单精度值或双精度值








