Untitled
unknown
kotlin
a year ago
974 B
3
Indexable
class Solution { fun maxEvents(events: Array<IntArray>): Int { val N = events.size events.sortBy { it[0] } // sort by start var totalAttends = 1 var currAttends = 1 var merged = Pair(events[0][0], events[0][1]) for (i in 1 until N) { val (lastStart, lastEnd) = merged val currStart = events[i][0] val currEnd = events[i][1] if (currStart < lastEnd) { // intersection merged = Pair(minOf(currStart, lastStart), maxOf(currEnd, lastEnd)) val maxAttends = merged.second - merged.first + 1 if (currAttends < maxAttends) { currAttends += 1 totalAttends += 1 } } else { // new interval merged = Pair(currStart, currEnd) currAttends = 1 totalAttends += 1 } } return totalAttends } }
Editor is loading...
Leave a Comment