当前位置:网站首页>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(); */
边栏推荐
- 01仿B站项目业务架构
- My notes on intelligent charging pile development (II): overview of system hardware circuit design
- 03 fastjason solves circular references
- Problems encountered when MySQL saves CSV files
- 03 FastJson 解决循环引用
- 要选择那种语言为单片机编写程序呢
- is_ power_ of_ 2 judge whether it is a multiple of 2
- 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
- Dynamic layout management
- Pymssql controls SQL for Chinese queries
猜你喜欢
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
Development of intelligent charging pile (I): overview of the overall design of the system
Programming ideas are more important than anything, not more than who can use several functions, but more than the understanding of the program
Assignment to '*' form incompatible pointer type 'linkstack' {aka '*'} problem solving
openEuler kernel 技术分享 - 第1期 - kdump 基本原理、使用及案例介绍
Open Euler Kernel Technology Sharing - Issue 1 - kdump Basic Principles, use and Case Introduction
[Li Kou brush question notes (II)] special skills, module breakthroughs, classification and summary of 45 classic questions, and refinement in continuous consolidation
03 fastjason solves circular references
In third tier cities and counties, it is difficult to get 10K after graduation
03 fastjason solves circular references
随机推荐
STM32 interrupt switch
Synchronization control between tasks
The data read by pandas is saved to the MySQL database
Installation and removal of MySQL under Windows
yocto 技術分享第四期:自定義增加軟件包支持
Serial port programming
[untitled] proteus simulation of traffic lights based on 89C51 Single Chip Microcomputer
Circular queue related design and implementation reference 1
2020-08-23
Retinaface: single stage dense face localization in the wild
学习开发没有捷径,也几乎不存在带路会学的快一些的情况
Qcombox style settings
Vscode markdown export PDF error
Gpiof6, 7, 8 configuration
03 FastJson 解决循环引用
2020-08-23
[combinatorics] Introduction to Combinatorics (combinatorial idea 3: upper and lower bound approximation | upper and lower bound approximation example Remsey number)
Leetcode 300 最长上升子序列
Oracle database SQL statement execution plan, statement tracking and optimization instance
(2) New methods in the interface