Tap here to switch tabs
Problem
Submissions

Problem: Closest Room

Try to solve the Closest Room problem.

Statement

There is a hotel with n rooms. You are given a 22D integer array rooms where rooms[i] = [roomIdi\text{roomId}_i, sizei\text{size}_i] represents a room with an identifier roomIdi\text{roomId}_i and a size sizei\text{size}_i. Each room identifier is distinct.

You are also given a 22D integer array queries of length k, where queries[j] = [preferredj\text{preferred}_j, minSizej\text{minSize}_j].

For each query j, you need to find a room with identifier roomIdi\text{roomId}_i such that:

  • The size of the room is at least minSizej\text{minSize}_j (sizei≥minSizej\text{size}_i \geq \text{minSize}_j).

  • The absolute difference between roomIdi\text{roomId}_i and preferredj\text{preferred}_j (∣roomIdi−preferredj∣| \text{roomId}_i - \text{preferred}_j|) is minimized.

If there is a tie, choose the room with the smallest roomIdi\text{roomId}_i. If no room satisfies the size requirement, the answer for that query is −1-1.

Return an array answer of length k containing the result for each query.

Constraints:

  • n ==== rooms.length

  • 1≤1 \leq n ≤105\leq 10^5

  • k ==== queries.length

  • 1≤1 \leq k ≤104\leq 10^4

  • 1≤roomIdi,preferredj≤1071 \leq \text{roomId}_i, \text{preferred}_j \leq 10^7

  • 1≤sizei,minSizej≤1071 \leq \text{size}_i, \text{minSize}_j \leq 10^7

⋮
Tap here to switch tabs
Problem
Submissions

Problem: Closest Room

Try to solve the Closest Room problem.

Statement

There is a hotel with n rooms. You are given a 22D integer array rooms where rooms[i] = [roomIdi\text{roomId}_i, sizei\text{size}_i] represents a room with an identifier roomIdi\text{roomId}_i and a size sizei\text{size}_i. Each room identifier is distinct.

You are also given a 22D integer array queries of length k, where queries[j] = [preferredj\text{preferred}_j, minSizej\text{minSize}_j].

For each query j, you need to find a room with identifier roomIdi\text{roomId}_i such that:

  • The size of the room is at least minSizej\text{minSize}_j (sizei≥minSizej\text{size}_i \geq \text{minSize}_j).

  • The absolute difference between roomIdi\text{roomId}_i and preferredj\text{preferred}_j (∣roomIdi−preferredj∣| \text{roomId}_i - \text{preferred}_j|) is minimized.

If there is a tie, choose the room with the smallest roomIdi\text{roomId}_i. If no room satisfies the size requirement, the answer for that query is −1-1.

Return an array answer of length k containing the result for each query.

Constraints:

  • n ==== rooms.length

  • 1≤1 \leq n ≤105\leq 10^5

  • k ==== queries.length

  • 1≤1 \leq k ≤104\leq 10^4

  • 1≤roomIdi,preferredj≤1071 \leq \text{roomId}_i, \text{preferred}_j \leq 10^7

  • 1≤sizei,minSizej≤1071 \leq \text{size}_i, \text{minSize}_j \leq 10^7