class Queue {
constructor() {
this.items = [];
}
enqueue(item) {
this.items.push(item);
}
dequeue() {
return this.items.shift();
}
head() {
return this.items[0];
}
tail() {
return this.items[this.items.length - 1];
}
clear() {
this.items = [];
}
size() {
return this.items.length;
}
isEmpty() {
return this.items.length === 0;
}
}
function ring(arr) {
const queue = new Queue();
arr.forEach(v => queue.enqueue(v));
let index = 0;
while(queue.size() > 1) {
const item = queue.dequeue();
if (++index % 3 !== 0) {
queue.enqueue(item);
}
}
return queue.head();
}
console.log(ring([1,2,3,4,5,6,7]))
console.log(ring([1,2,6]))
function fiboSequence(num) {
if (num < 2) return num;
const queue = [];
queue.push(0);
queue.push(1);
for(let i = 2; i < num; i++) {
const len = queue.length;
queue.push(queue[len - 2] + queue[len - 1]);
}
return queue;
}
console.log(fiboSequence(12))
console