LeetCode 435. Non-overlapping Intervals in F#

URL

Non-overlapping Intervals - LeetCode

Code

https://github.com/syohex/dotnet-study/tree/master/fsharp/leetcode/problems/0435/main.fsx

let eraseOverlapIntervals (intervals: (int * int) list) : int =
    let rec eraseOverlapIntervals' intervals border acc =
        match intervals with
        | [] -> acc
        | (startTime, endTime) :: t ->
            if startTime >= border then
                eraseOverlapIntervals' t endTime acc
            else
                eraseOverlapIntervals' t border (acc + 1)

    let intervals' = List.sortBy snd intervals
    eraseOverlapIntervals' intervals' System.Int32.MinValue 0