Daily LeetCode Challenge - 435. Non-overlapping Intervals

Min Young Kim·2023년 7월 19일
0

algorithm

목록 보기
194/198

Problem From.

https://leetcode.com/problems/non-overlapping-intervals/

오늘 문제는 주어진 intervals 에서 범위가 겹치지 않게 하기 위해서 제거해야할 원소의 갯수를 반환하는 문제였다.

이 문제는 먼저 intervals 의 원소들을 첫번째 원소를 기준으로 오름차순으로 나열한뒤에, 처음부터 검사해나가면서, 범위가 겹치는 원소들이 몇개 있는지 세어서 cnt 를 반환해주면 되었다.

class Solution {
    fun eraseOverlapIntervals(intervals: Array<IntArray>): Int {
        if (intervals.isEmpty())    return 0
		intervals.sortWith(compareBy({it.first()}, {it.last()}))
		var count = 0
		var temp = intervals.first().last()
		for (i in 1 .. intervals.lastIndex) {
			if (intervals[i].first() >= temp) {
				temp = intervals[i].last()
			} else {
				count++
				temp = minOf(intervals[i].last(), temp)
			}
		}
		return count
	}
}
profile
길을 찾는 개발자

0개의 댓글