LeetCode 1846. Maximum Element After Decreasing and Rearranging in F#

URL

Maximum Element After Decreasing and Rearranging - LeetCode

Code

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

let maximumElementAfterDecrementingAndRearranging (arr: int list) : int =
    let rec f arr prev =
        match arr with
        | [] -> prev
        | h :: t -> if h - prev > 1 then f t (prev + 1) else f t h

    let arr' = List.sort arr
    f (List.tail arr') 1