Skip to content

Commit e8558a0

Browse files
authored
Merge pull request #2679 from t3chkid/main
Adds Kotlin solutions for problems #252 and #253
2 parents 845ab9b + 45d03e3 commit e8558a0

File tree

3 files changed

+33
-2
lines changed

3 files changed

+33
-2
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -471,8 +471,8 @@ If you would like to have collaborator permissions on the repo to merge your own
471471
<sub>[0057 - Insert Interval](https://leetcode.com/problems/insert-interval/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](cpp%2F0057-insert-interval.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F0057-insert-interval.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](go%2F0057-insert-interval.go)</div></sub> | <sub><div align='center'>[✔️](java%2F0057-insert-interval.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0057-insert-interval.js)</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0057-insert-interval.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F0057-insert-interval.py)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](rust%2F0057-insert-interval.rs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](swift%2F0057-insert-interval.swift)</div></sub> | <sub><div align='center'>[✔️](typescript%2F0057-insert-interval.ts)</div></sub>
472472
<sub>[0056 - Merge Intervals](https://leetcode.com/problems/merge-intervals/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](cpp%2F0056-merge-intervals.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F0056-merge-intervals.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](go%2F0056-merge-intervals.go)</div></sub> | <sub><div align='center'>[✔️](java%2F0056-merge-intervals.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0056-merge-intervals.js)</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0056-merge-intervals.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F0056-merge-intervals.py)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](scala%2F0056-merge-intervals.scala)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](typescript%2F0056-merge-intervals.ts)</div></sub>
473473
<sub>[0435 - Non Overlapping Intervals](https://leetcode.com/problems/non-overlapping-intervals/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](cpp%2F0435-non-overlapping-intervals.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F0435-non-overlapping-intervals.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](go%2F0435-non-overlapping-intervals.go)</div></sub> | <sub><div align='center'>[✔️](java%2F0435-non-overlapping-intervals.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0435-non-overlapping-intervals.js)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](python%2F0435-non-overlapping-intervals.py)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](scala%2F0435-non-overlapping-intervals.scala)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](typescript%2F0435-non-overlapping-intervals.ts)</div></sub>
474-
<sub>[0252 - Meeting Rooms](https://leetcode.com/problems/meeting-rooms/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](cpp%2F0252-meeting-rooms.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F0252-meeting-rooms.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](java%2F0252-meeting-rooms.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0252-meeting-rooms.js)</div></sub> | <sub><div align='center'></div></sub> | <sub><div align='center'>[✔️](python%2F0252-meeting-rooms.py)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub>
475-
<sub>[0253 - Meeting Rooms II](https://leetcode.com/problems/meeting-rooms-ii/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](cpp%2F0253-meeting-rooms-ii.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F0253-meeting-rooms-ii.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](java%2F0253-meeting-rooms-ii.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0253-meeting-rooms-ii.js)</div></sub> | <sub><div align='center'></div></sub> | <sub><div align='center'>[✔️](python%2F0253-meeting-rooms-ii.py)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](rust%2F0253-meeting-rooms-ii.rs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub>
474+
<sub>[0252 - Meeting Rooms](https://leetcode.com/problems/meeting-rooms/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](cpp%2F0252-meeting-rooms.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F0252-meeting-rooms.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](java%2F0252-meeting-rooms.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0252-meeting-rooms.js)</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0252-meeting-rooms.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F0252-meeting-rooms.py)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub>
475+
<sub>[0253 - Meeting Rooms II](https://leetcode.com/problems/meeting-rooms-ii/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](cpp%2F0253-meeting-rooms-ii.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F0253-meeting-rooms-ii.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](java%2F0253-meeting-rooms-ii.java)</div></sub> | <sub><div align='center'>[✔️](javascript%2F0253-meeting-rooms-ii.js)</div></sub> | <sub><div align='center'>[✔️](kotlin%2F0253-meeting-rooms-ii.kt)</div></sub> | <sub><div align='center'>[✔️](python%2F0253-meeting-rooms-ii.py)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](rust%2F0253-meeting-rooms-ii.rs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub>
476476
<sub>[1288 - Remove Covered Intervals](https://leetcode.com/problems/remove-covered-intervals/)</sub> | <sub><div align='center'>[✔️](c%2F1288-Remove-Covered-Intervals.c)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub>
477477
<sub>[1851 - Minimum Interval to Include Each Query](https://leetcode.com/problems/minimum-interval-to-include-each-query/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](cpp%2F1851-Minimum-Interval-To-Include-Each-Query.cpp)</div></sub> | <sub><div align='center'>[✔️](csharp%2F1851-Minimum-Interval-to-Include-Each-Query.cs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](java%2F1851-Minimum-Interval-to-Include-Each-Query.java)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](python%2F1851-minimum-interval-to-include-each-query.py)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub>
478478
<sub>[0352 - Data Stream as Disjoint Intervals](https://leetcode.com/problems/data-stream-as-disjoint-intervals/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](go%2F0352-data-stream-as-disjoint-intervals.go)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](javascript%2F0352-data-stream-as-disjoint-intervals.js)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](rust%2F0352-data-stream-as-disjoint-intervals.rs)</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>[✔️](typescript%2F0352-data-stream-as-disjoint-intervals.ts)</div></sub>

kotlin/0252-meeting-rooms.kt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
class Solution {
2+
fun canAttendMeetings(intervals: Array<IntArray>): Boolean {
3+
if (intervals.isEmpty()) return true
4+
intervals.sortBy { it.first() }
5+
var (_, previousEnd) = intervals.first()
6+
for (i in 1..intervals.lastIndex) {
7+
val (currentStart, currentEnd) = intervals[i]
8+
if (currentStart < previousEnd) return false // they are overlapping
9+
previousEnd = currentEnd
10+
}
11+
return true
12+
}
13+
}

kotlin/0253-meeting-rooms-ii.kt

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
class Solution {
2+
fun minMeetingRooms(intervals: Array<IntArray>): Int {
3+
val startTimes = intervals.map { it.first() }.sorted()
4+
val endTimes = intervals.map { it.last() }.sorted()
5+
var (startIndex, endIndex) = Pair(0, 0)
6+
var minMeetingRooms = 0
7+
while (startIndex in startTimes.indices) {
8+
if (startTimes[startIndex] < endTimes[endIndex]) {
9+
minMeetingRooms++
10+
startIndex++
11+
} else {
12+
startIndex++
13+
endIndex++
14+
}
15+
}
16+
return minMeetingRooms
17+
}
18+
}

0 commit comments

Comments
 (0)