Skip to content

Commit 6b7436a

Browse files
authored
Create 166. Fraction to Recurring Decimal 1 (#895)
2 parents 20ec528 + 0292c29 commit 6b7436a

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
class SpecialQueue {
2+
3+
public:
4+
5+
queue<int>q;
6+
deque<int>dq1,dq2;
7+
8+
// dq1-> mini
9+
// dq2-> maxi
10+
void enqueue(int x) {
11+
// Insert element into the queue
12+
q.push(x);
13+
14+
while(!dq1.empty() && dq1.back()>x){
15+
dq1.pop_back();
16+
}
17+
18+
dq1.push_back(x);
19+
20+
while(!dq2.empty() && dq2.back()<x){
21+
dq2.pop_back();
22+
}
23+
24+
dq2.push_back(x);
25+
}
26+
27+
void dequeue() {
28+
// Remove element from the queue
29+
if(q.empty()) return ;
30+
int x=q.front();
31+
32+
while(!dq1.empty() && x==dq1.front()) {
33+
dq1.pop_front();
34+
break;
35+
}
36+
37+
while(!dq2.empty() && x==dq2.front()) {
38+
dq2.pop_front();
39+
break;
40+
}
41+
42+
q.pop();
43+
}
44+
45+
int getFront() {
46+
// Get front element
47+
int x=q.empty() ? -1 : q.front();
48+
return x;
49+
}
50+
51+
int getMin() {
52+
// Get minimum element
53+
if(q.empty()) return -1;
54+
return dq1.front();
55+
}
56+
57+
int getMax() {
58+
// Get maximum element
59+
if(q.empty()) return -1;
60+
return dq2.front();
61+
}
62+
};

0 commit comments

Comments
 (0)