当前位置:网站首页>Leetcode - 1670 conception de la file d'attente avant, moyenne et arrière (conception - deux files d'attente à double extrémité)
Leetcode - 1670 conception de la file d'attente avant, moyenne et arrière (conception - deux files d'attente à double extrémité)
2022-07-03 10:05:00 【C'est mignon à 3 ans.】


Deux files d'attente doubles

class FrontMiddleBackQueue {
//Diviser toutes les valeurs en deux parties
//La première moitié estdeque1
private Deque<Integer> deque1;
//La deuxième moitié estdeque2
private Deque<Integer> deque2;
//Fairedeque1Ou le nombre de valeurs dedeque2Nombre égal de valeurs pour(Le nombre de valeurs est pair) Non, non.deque2Un autre(Le nombre de valeurs est impair)
public FrontMiddleBackQueue() {
deque1 = new LinkedList<>();
deque2 = new LinkedList<>();
}
public void makeBalance(){
//Fairedeque1Ou le nombre de valeurs dedeque2Nombre égal de valeurs pour(Le nombre de valeurs est pair) Non, non.deque2Un autre(Le nombre de valeurs est impair)
// Il n'y a que deux cas d'insatisfaction
//deque1 Le nombre de valeurs de deque2 Deux de plus
if(deque1.size() > deque2.size()+1)
deque2.offerFirst(deque1.pollLast());
//deque2 Le nombre de valeurs de deque1 Plus qu'un
if(deque2.size() > deque1.size())
deque1.offerLast(deque2.pollFirst());
}
public void pushFront(int val) {
//Mettez - le surdeque1Devant
deque1.offerFirst(val);
// Maintenir l'équilibre
makeBalance();
}
public void pushMiddle(int val) {
// Si la valeur existante est 1 3 2
//Passe.makeBalance deque1 1 3 deque2 2
//En ce momentpushMiddle 4
// Mais quand la valeur est un nombre impair pushMiddleOui. 3 Avant Il faut d'abord3 Mettre dansdeque2 Encore 4 Mettre dansdeque1
// deque1 1 4 deque2 3 2
if(deque1.size() > deque2.size())
deque2.offerFirst(deque1.pollLast());
// Si la valeur existante est 1 4 3 2
//Etdeque1 1 4 deque2 3 2
//pushMiddle 5
//Allez - y.5Mettre dansdeque1
//deque1 1 4 5 deque2 3 2
deque1.offerLast(val);
}
public void pushBack(int val) {
//Directement dansdeque2 Fin
deque2.offerLast(val);
//Maintenir l'équilibre
makeBalance();
}
public int popFront() {
//Indeque1Non vide Retour directdeque1 Valeur initiale
if(deque1.size() != 0){
int val = deque1.pollFirst();
makeBalance();
return val;
}
//Parce quedeque1 Le nombre de valeurs doit être supérieur à deque2 Ça vaut plus que quelques Sideque1 Si elle est vide, le nombre actuel de valeurs est 0
else
return -1;
}
public int popMiddle() {
// La valeur est un nombre impair
//1 3 5 7 9
// deque1 1 3 5 deque2 7 9
// La valeur est pair
// 1 3 5 7
// deque1 1 3 deque2 5 7
//Peu importe. middle Tous.deque1 Valeur finale de
if(deque1.size() != 0){
int val = deque1.pollLast();
makeBalance();
return val;
}
else
return -1;
}
public int popBack() {
// Le nombre de valeurs est 0Heure deque1 Etdeque2 Tout est vide Retour-1
if(deque1.size() == 0 && deque2.size() == 0){
return -1;
}
else if(deque2.size() != 0){
// Le nombre de valeurs est supérieur ou égal à 2Heure deque2 Il doit y avoir une valeur Retour deque2Valeur finale
int val = deque2.pollLast();
makeBalance();
return val;
}else{
// Le nombre de valeurs est 1 Heure deque1.size() == 1 deque2.size() == 0 Retourdeque1 Valeur finale de
int val = deque1.pollLast();
makeBalance();
return val;
}
}
}
/** * Your FrontMiddleBackQueue object will be instantiated and called as such: * FrontMiddleBackQueue obj = new FrontMiddleBackQueue(); * obj.pushFront(val); * obj.pushMiddle(val); * obj.pushBack(val); * int param_4 = obj.popFront(); * int param_5 = obj.popMiddle(); * int param_6 = obj.popBack(); */
边栏推荐
- The data read by pandas is saved to the MySQL database
- 自动装箱与拆箱了解吗?原理是什么?
- LeetCode - 706 设计哈希映射(设计) *
- STM32 general timer output PWM control steering gear
- In third tier cities and counties, it is difficult to get 10K after graduation
- Serial port programming
- (1) 什么是Lambda表达式
- Application of external interrupts
- Drive and control program of Dianchuan charging board for charging pile design
- MySQL 数据库基础知识(系统化一篇入门)
猜你喜欢

Development of intelligent charging pile (I): overview of the overall design of the system

Timer and counter of 51 single chip microcomputer

Swing transformer details-1

LeetCode - 919. 完全二叉树插入器 (数组)

Exception handling of arm

Yocto technology sharing phase IV: customize and add software package support

QT is a method of batch modifying the style of a certain type of control after naming the control

Pymssql controls SQL for Chinese queries

Yocto Technology Sharing Phase 4: Custom add package support

I didn't think so much when I was in the field of single chip microcomputer. I just wanted to earn money to support myself first
随机推荐
4G module board level control interface designed by charging pile
Working mode of 80C51 Serial Port
[keil5 debugging] warning:enumerated type mixed with other type
LeetCode - 919. 完全二叉树插入器 (数组)
Toolbutton property settings
LeetCode - 673. 最长递增子序列的个数
Seven sorting of ten thousand words by hand (code + dynamic diagram demonstration)
Assignment to '*' form incompatible pointer type 'linkstack' {aka '*'} problem solving
2. Elment UI date selector formatting problem
新系列单片机还延续了STM32产品家族的低电压和节能两大优势
SCM career development: those who can continue to do it have become great people. If they can't endure it, they will resign or change their careers
Circular queue related design and implementation reference 1
Serial port programming
MySQL root user needs sudo login
应用最广泛的8位单片机当然也是初学者们最容易上手学习的单片机
Modelcheckpoint auto save model
我想各位朋友都应该知道学习的基本规律就是:从易到难
Stm32 NVIC interrupt priority management
Drive and control program of Dianchuan charging board for charging pile design
STM32 general timer 1s delay to realize LED flashing