diff --git a/README.md b/README.md index e64e0dd61..f75555c42 100644 --- a/README.md +++ b/README.md @@ -471,8 +471,8 @@ If you would like to have collaborator permissions on the repo to merge your own [0057 - Insert Interval](https://leetcode.com/problems/insert-interval/) |
|
[✔️](cpp%2F0057-insert-interval.cpp)
|
[✔️](csharp%2F0057-insert-interval.cs)
|
|
[✔️](go%2F0057-insert-interval.go)
|
[✔️](java%2F0057-insert-interval.java)
|
[✔️](javascript%2F0057-insert-interval.js)
|
[✔️](kotlin%2F0057-insert-interval.kt)
|
[✔️](python%2F0057-insert-interval.py)
|
|
[✔️](rust%2F0057-insert-interval.rs)
|
|
[✔️](swift%2F0057-insert-interval.swift)
|
[✔️](typescript%2F0057-insert-interval.ts)
[0056 - Merge Intervals](https://leetcode.com/problems/merge-intervals/) |
|
[✔️](cpp%2F0056-merge-intervals.cpp)
|
[✔️](csharp%2F0056-merge-intervals.cs)
|
|
[✔️](go%2F0056-merge-intervals.go)
|
[✔️](java%2F0056-merge-intervals.java)
|
[✔️](javascript%2F0056-merge-intervals.js)
|
[✔️](kotlin%2F0056-merge-intervals.kt)
|
[✔️](python%2F0056-merge-intervals.py)
|
|
|
[✔️](scala%2F0056-merge-intervals.scala)
|
|
[✔️](typescript%2F0056-merge-intervals.ts)
[0435 - Non Overlapping Intervals](https://leetcode.com/problems/non-overlapping-intervals/) |
|
[✔️](cpp%2F0435-non-overlapping-intervals.cpp)
|
[✔️](csharp%2F0435-non-overlapping-intervals.cs)
|
|
[✔️](go%2F0435-non-overlapping-intervals.go)
|
[✔️](java%2F0435-non-overlapping-intervals.java)
|
[✔️](javascript%2F0435-non-overlapping-intervals.js)
|
|
[✔️](python%2F0435-non-overlapping-intervals.py)
|
|
|
[✔️](scala%2F0435-non-overlapping-intervals.scala)
|
|
[✔️](typescript%2F0435-non-overlapping-intervals.ts)
-[0252 - Meeting Rooms](https://leetcode.com/problems/meeting-rooms/) |
|
[✔️](cpp%2F0252-meeting-rooms.cpp)
|
[✔️](csharp%2F0252-meeting-rooms.cs)
|
|
|
[✔️](java%2F0252-meeting-rooms.java)
|
[✔️](javascript%2F0252-meeting-rooms.js)
|
|
[✔️](python%2F0252-meeting-rooms.py)
|
|
|
|
|
-[0253 - Meeting Rooms II](https://leetcode.com/problems/meeting-rooms-ii/) |
|
[✔️](cpp%2F0253-meeting-rooms-ii.cpp)
|
[✔️](csharp%2F0253-meeting-rooms-ii.cs)
|
|
|
[✔️](java%2F0253-meeting-rooms-ii.java)
|
[✔️](javascript%2F0253-meeting-rooms-ii.js)
|
|
[✔️](python%2F0253-meeting-rooms-ii.py)
|
|
[✔️](rust%2F0253-meeting-rooms-ii.rs)
|
|
|
+[0252 - Meeting Rooms](https://leetcode.com/problems/meeting-rooms/) |
|
[✔️](cpp%2F0252-meeting-rooms.cpp)
|
[✔️](csharp%2F0252-meeting-rooms.cs)
|
|
|
[✔️](java%2F0252-meeting-rooms.java)
|
[✔️](javascript%2F0252-meeting-rooms.js)
|
[✔️](kotlin%2F0252-meeting-rooms.kt)
|
[✔️](python%2F0252-meeting-rooms.py)
|
|
|
|
|
+[0253 - Meeting Rooms II](https://leetcode.com/problems/meeting-rooms-ii/) |
|
[✔️](cpp%2F0253-meeting-rooms-ii.cpp)
|
[✔️](csharp%2F0253-meeting-rooms-ii.cs)
|
|
|
[✔️](java%2F0253-meeting-rooms-ii.java)
|
[✔️](javascript%2F0253-meeting-rooms-ii.js)
|
[✔️](kotlin%2F0253-meeting-rooms-ii.kt)
|
[✔️](python%2F0253-meeting-rooms-ii.py)
|
|
[✔️](rust%2F0253-meeting-rooms-ii.rs)
|
|
|
[1288 - Remove Covered Intervals](https://leetcode.com/problems/remove-covered-intervals/) |
[✔️](c%2F1288-Remove-Covered-Intervals.c)
|
|
|
|
|
|
|
|
|
|
|
|
|
[1851 - Minimum Interval to Include Each Query](https://leetcode.com/problems/minimum-interval-to-include-each-query/) |
|
[✔️](cpp%2F1851-Minimum-Interval-To-Include-Each-Query.cpp)
|
[✔️](csharp%2F1851-Minimum-Interval-to-Include-Each-Query.cs)
|
|
|
[✔️](java%2F1851-Minimum-Interval-to-Include-Each-Query.java)
|
|
|
[✔️](python%2F1851-minimum-interval-to-include-each-query.py)
|
|
|
|
|
[0352 - Data Stream as Disjoint Intervals](https://leetcode.com/problems/data-stream-as-disjoint-intervals/) |
|
|
|
|
[✔️](go%2F0352-data-stream-as-disjoint-intervals.go)
|
|
[✔️](javascript%2F0352-data-stream-as-disjoint-intervals.js)
|
|
|
|
[✔️](rust%2F0352-data-stream-as-disjoint-intervals.rs)
|
|
|
[✔️](typescript%2F0352-data-stream-as-disjoint-intervals.ts)
diff --git a/kotlin/0252-meeting-rooms.kt b/kotlin/0252-meeting-rooms.kt new file mode 100644 index 000000000..f43f6cad0 --- /dev/null +++ b/kotlin/0252-meeting-rooms.kt @@ -0,0 +1,13 @@ +class Solution { + fun canAttendMeetings(intervals: Array): Boolean { + if (intervals.isEmpty()) return true + intervals.sortBy { it.first() } + var (_, previousEnd) = intervals.first() + for (i in 1..intervals.lastIndex) { + val (currentStart, currentEnd) = intervals[i] + if (currentStart < previousEnd) return false // they are overlapping + previousEnd = currentEnd + } + return true + } +} \ No newline at end of file diff --git a/kotlin/0253-meeting-rooms-ii.kt b/kotlin/0253-meeting-rooms-ii.kt new file mode 100644 index 000000000..88887f523 --- /dev/null +++ b/kotlin/0253-meeting-rooms-ii.kt @@ -0,0 +1,18 @@ +class Solution { + fun minMeetingRooms(intervals: Array): Int { + val startTimes = intervals.map { it.first() }.sorted() + val endTimes = intervals.map { it.last() }.sorted() + var (startIndex, endIndex) = Pair(0, 0) + var minMeetingRooms = 0 + while (startIndex in startTimes.indices) { + if (startTimes[startIndex] < endTimes[endIndex]) { + minMeetingRooms++ + startIndex++ + } else { + startIndex++ + endIndex++ + } + } + return minMeetingRooms + } +} \ No newline at end of file