LeetCode 1288. Remove Covered Intervals in F#

URL

leetcode.com/problems/remove-covered-interv..

Code

github.com/syohex/dotnet-study/blob/master/..

let removeCoveredIntervals (intervals: (int * int) list) : int =
    let rec removeCoveredIntervals' intervals prev count =
        match intervals with
        | [] -> count
        | (_, e) :: xs ->
            if prev < e then
                removeCoveredIntervals' xs e (count + 1)
            else
                removeCoveredIntervals' xs prev count

    let sorted =
        intervals
        |> List.sortWith (fun (s1, e1) (s2, e2) ->
            if s1 = s2 then
                compare e2 e1
            else
                compare s1 s2)

    removeCoveredIntervals' sorted -1 0