1
+ # Runtime: 3555 ms (Top 46.27%) | Memory: 66.7 MB (Top 10.45%)
2
+
1
3
from sortedcontainers import SortedList
2
4
3
5
class Solution :
4
6
def closestRoom (self , rooms : List [List [int ]], queries : List [List [int ]]) -> List [int ]:
5
- rooms .sort (key = lambda x : x [1 ], reverse = True ) # Sort by decreasing order of room size
6
- qArr = [[i , q ] for i , q in enumerate (queries )] # Zip queries with their index
7
- qArr .sort (key = lambda x : x [1 ][1 ], reverse = True ) # Sort by decreasing order of query minSize
7
+ rooms .sort (key = lambda x : x [1 ], reverse = True ) # Sort by decreasing order of room size
8
+ qArr = [[i , q ] for i , q in enumerate (queries )] # Zip queries with their index
9
+ qArr .sort (key = lambda x : x [1 ][1 ], reverse = True ) # Sort by decreasing order of query minSize
8
10
9
11
def searchClosestRoomId (preferredId ):
10
- if len (roomIdsSoFar ) == 0 :
12
+ if len (roomIdsSoFar ) == 0 :
11
13
return - 1
12
14
cands = []
13
15
i = roomIdsSoFar .bisect_right (preferredId )
14
- if i > 0 :
16
+ if i > 0 :
15
17
cands .append (roomIdsSoFar [i - 1 ])
16
- if i < len (roomIdsSoFar ):
18
+ if i < len (roomIdsSoFar ):
17
19
cands .append (roomIdsSoFar [i ])
18
20
return min (cands , key = lambda x : abs (x - preferredId ))
19
21
@@ -23,7 +25,7 @@ def searchClosestRoomId(preferredId):
23
25
ans = [- 1 ] * k
24
26
for index , (prefferedId , minSize ) in qArr :
25
27
while i < n and rooms [i ][1 ] >= minSize :
26
- roomIdsSoFar .add (rooms [i ][0 ]) # Add id of the room which its size >= query minSize
28
+ roomIdsSoFar .add (rooms [i ][0 ]) # Add id of the room which its size >= query minSize
27
29
i += 1
28
30
ans [index ] = searchClosestRoomId (prefferedId )
29
- return ans
31
+ return ans
0 commit comments