Problems
1845 - Seat Reservation Manager
Easy
class SeatManager {
    /**
    * MinHeap
    * Time O(n*log(n)) | Space O(n)
    * https://leetcode.com/problems/seat-reservation-manager/
    * @param {number} n
    */
    constructor(n) {
        this.unreserved = new MinPriorityQueue({
            compare: (a, b) => a - b
        });

        for (let i = 1; i < n + 1; i++) {
            this.unreserved.enqueue(i);
        }
    }

    /**
     * Time O(log(n)) | Space O(1)
     * @return {number}
     */
    reserve() {
        const minAvailableSeat = this.unreserved.dequeue();
        return minAvailableSeat;
    }

    /** 
     * Time O(log(n)) | Space O(1)
     * @param {number} seatNumber
     * @return {void}
     */
    unreserve(seatNumber) {
        this.unreserved.enqueue(seatNumber);
    }
}