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