LeetCode 128. Longest Consecutive Sequence in F#

URL

leetcode.com/problems/longest-consecutive-s..

Code

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

let longestConsecutive (nums: int list) : int =
    let rec checkConsecutive num s len =
        if Set.contains num s then
            checkConsecutive (num + 1) s (len + 1)
        else
            len

    let rec longestConsecutive' nums s ret =
        match nums with
        | [] -> ret
        | h :: t ->
            let len = checkConsecutive (h + 1) s 1
            longestConsecutive' t s (System.Math.Max(ret, len))

    let s = nums |> Set.ofList
    longestConsecutive' nums s 0