LeetCode 852. Peak Index in a Mountain Array in F#

URL

Peak Index in a Mountain Array - LeetCode

Code

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

let peakIndexInMountainArray (arr: int list) : int =
    let rec peakIndexInMountainArray' (arr: int[]) left right =
        if left >= right then
            left
        else
            let mid = left + (right - left) / 2

            if arr.[mid] < arr.[mid + 1] then
                peakIndexInMountainArray' arr (mid + 1) right
            else
                peakIndexInMountainArray' arr left mid

    let arr' = Array.ofList arr
    peakIndexInMountainArray' arr' 0 (arr.Length - 1)