Hotel Bookings Possible

A hotel manager has to process N advance bookings of rooms for the next season. His hotel has C rooms. Bookings contain an arrival date and a departure date. He wants to find out whether there are enough rooms in the hotel to satisfy the demand. Write a program that solves this problem in time O(N log N) . Input Format

First argument is an integer array A containing arrival time of booking. Second argument is an integer array B containing departure time of booking. Third argument is an integer C denoting the count of rooms. Output Format

Return True if there are enough rooms for N bookings else return False. Return 0/1 for C programs. Example Input

Input 1:

 A = [1, 3, 5]
 B = [2, 6, 8]
 C = 1

Example Output

Output 1:

 0

Example Explanation

Explanation 1:

 At day = 5, there are 2 guests in the hotel. But I have only one room.
public class Solution {
    public boolean hotel(ArrayList<Integer> arrive, ArrayList<Integer> depart, int K) {
        Collections.sort(arrive);
        Collections.sort(depart);
        for (int i = 0; i + K < arrive.size(); i++)
            if (arrive.get(i + K) < depart.get(i))
                return false;

        return true;
    }
}

Last updated