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)