LeetCode 167. Two Sum II - Input Array Is Sorted in F#

URL

leetcode.com/problems/two-sum-ii-input-arra..

Code

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

let twoSum (numbers: int []) (target: int) : (int * int) =
    let rec twoSum' left right (numbers: int []) target =
        if left >= right then
            failwith "never reach here"
        else
            let sum = numbers.[left] + numbers.[right]

            if sum = target then
                (left + 1, right + 1)
            elif sum < target then
                twoSum' (left + 1) right numbers target
            else
                twoSum' left (right - 1) numbers target

    twoSum' 0 (numbers.Length - 1) numbers target