1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| var MaxQueue = function () { this.queue = {} this.deque = {} this.countQ = this.countD = this.headQ = this.headD = 0 };
MaxQueue.prototype.push_back = function (value) { this.queue[this.countQ++] = value while (!this.isEmptyDeque() && value > this.deque[this.countD - 1]) { delete this.deque[--this.countD] } this.deque[this.countD++] = value };
MaxQueue.prototype.pop_front = function () { if (this.isEmptyQueue()) { return -1 } if (this.queue[this.headQ] === this.deque[this.headD]) { delete this.deque[this.headD++] } const frontData = this.queue[this.headQ] delete this.queue[this.headQ++] return frontData };
MaxQueue.prototype.max_value = function () { if (this.isEmptyDeque()) { return -1 } return this.deque[this.headD] };
MaxQueue.prototype.isEmptyDeque = function () { return !(this.countD - this.headD) };
MaxQueue.prototype.isEmptyQueue = function () { return !(this.countQ - this.headQ) };
|