Python, C++, JavaScript, SQL 및 TypeScript의 다양한 LeetCode 솔루션을 살펴보세요. 여러 프로그래밍 언어로 인터뷰 준비, 학습 및 코드 연습에 적합합니다. Github 레포 링크
정수가 주어졌습니다. N
. N
번호가 매겨진 방 0
에게 n-1
.
2차원 정수 배열이 제공됩니다. 회의
어디 회의[i] = [시작 i , 끝 i ]
회의가 열릴 것이라는 뜻이다. 반 폐쇄 시간 간격 [시작 i , 끝 i )
.모든 가치는 내가 시작해
~이다 고유한.
회의는 다음과 같은 방식으로 회의실에 할당됩니다.
- 각 회의는 사용하지 않는 방에서 다음과 같이 진행됩니다. 최저 숫자.
- 사용 가능한 회의실이 없는 경우 회의실이 비어 있을 때까지 회의가 연기됩니다. 같은 기간은 원래 회의와 동일합니다.
- 회의실을 사용하지 않게 되면 이전 원본이 있는 회의 시작 방에 시간을 주어야합니다.
반품 그만큼 숫자 가장 많은 회의가 열린 방의 모습입니다. 방이 여러개일 경우 반납 가 있는 방 최저 숫자.
에이 반 폐쇄 구간 [a, b)
사이의 간격이다 에이
그리고 비
포함 에이
그리고 포함하지 않음 비
.
예시 1:
입력: n = 2, 회의 = [[0,10],[1,5],[2,7],[3,4]] 산출: 0 설명: - 0번에는 두 방 모두 사용되지 않습니다. - 1번에는 1번 방만 사용되지 않습니다. - 2번에는 두 방이 모두 사용 중입니다. 3번째 회의가 지연됩니다. - 3번째 회의는 두 번째 회의가 지연됩니다. - 5번째 회의는 1번방에서 시작됩니다. ,10) - 시간 10에 두 회의실의 회의가 종료됩니다. [10,11) 기간 동안 회의실 0에서 시작되므로 0이 반환됩니다.
예 2:
입력: n = 3, 회의 = [[1,20],[2,10],[3,5],[4,9],[6,8]] 산출: 1 설명: - 1번에는 3개의 회의실이 모두 사용되지 않습니다. - 2번에는 1번방에서 2번째 회의가 시작되지 않습니다. - 3번에는 회의실만 사용됩니다. 2번 회의실은 사용되지 않습니다. - 4번 회의실은 모두 사용 중입니다. 4번 회의는 5번 회의실에서 시작됩니다. 2번은 [5,10] 시간입니다. - 6번 방은 모두 사용 중입니다. 5번째 회의는 10번 방에서 시작됩니다. [10,12) 기간 동안 회의실 0은 1회의 회의를 개최했고 회의실 1과 2에서는 각각 2회의 회의를 개최했으므로 1을 반환합니다.
제약:
1 <= n <= 100
1 <= 회의 길이 <= 10 5
회의[i].length == 2
0 <= 시작 i < 끝 i <= 5 * 10 5
- 모든 가치
내가 시작해
~이다 고유한.
목차
비녀장파이썬
# 시간 복잡도: O(nlogn) # 공간 복잡도: O(n) from heapq import heappop, heappush from looking import List class 솔루션: def MostBooked(self, n: int, conference: List[List[int]]) -> int: Meetings.sort() availableRooms = [i for i in range(n)] UsedRooms = [] counter = [0] * 회의의 startTime, endTime에 대한 n: while UsedRooms 및 UsedRooms[0][0] <= startTime :ending, room = heappop(usedRooms) heappush(availableRooms, room) if availableRooms: end, room = heappop(usedRooms) endTime = end + (endTime - startTime) heappush(availableRooms, room) room = heappop(availableRooms) heappush( UsedRooms, (endTime, room)) counter[room] += 1 return counter.index(max(counter)) n = 3 회의 회의 = [[1, 20], [2, 10], [3, 5], [ 4, 9], [6, 8]] print(Solution().mostBooked(n, 회의))