当前位置:网站首页>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(); */
边栏推荐
- Vgg16 migration learning source code
- Getting started with JMX, MBean, mxbean, mbeanserver
- (2)接口中新增的方法
- 03 fastjason solves circular references
- LeetCode 面试题 17.20. 连续中值(大顶堆+小顶堆)
- QT setting suspension button
- 2021-10-28
- el-table X轴方向(横向)滚动条默认滑到右边
- 51 MCU tmod and timer configuration
- Circular queue related design and implementation reference 1
猜你喜欢

Retinaface: single stage dense face localization in the wild

Quelle langue choisir pour programmer un micro - ordinateur à puce unique

The new series of MCU also continues the two advantages of STM32 product family: low voltage and energy saving

YOLO_ V1 summary

MySQL root user needs sudo login

I think all friends should know that the basic law of learning is: from easy to difficult

It is difficult to quantify the extent to which a single-chip computer can find a job

单片机现在可谓是铺天盖地,种类繁多,让开发者们应接不暇

SCM is now overwhelming, a wide variety, so that developers are overwhelmed

03 FastJson 解决循环引用
随机推荐
About windows and layout
My notes on intelligent charging pile development (II): overview of system hardware circuit design
2312、卖木头块 | 面试官与狂徒张三的那些事(leetcode,附思维导图 + 全部解法)
yocto 技術分享第四期:自定義增加軟件包支持
Stm32 NVIC interrupt priority management
Development of intelligent charging pile (I): overview of the overall design of the system
学历是一张通行证,门票,你有了它,可以踏入更高层次的环境里
Tensorflow built-in evaluation
Crash工具基本使用及实战分享
JS foundation - prototype prototype chain and macro task / micro task / event mechanism
Of course, the most widely used 8-bit single chip microcomputer is also the single chip microcomputer that beginners are most easy to learn
Mobile phones are a kind of MCU, but the hardware it uses is not 51 chip
On the problem of reference assignment to reference
单片机学到什么程度能找到工作,这个标准不好量化
03 fastjason solves circular references
干单片机这一行的时候根本没想过这么多,只想着先挣钱养活自己
SCM is now overwhelming, a wide variety, so that developers are overwhelmed
Wireshark use
The new series of MCU also continues the two advantages of STM32 product family: low voltage and energy saving
There is no specific definition of embedded system