LeetCode 540. Single Element in a Sorted Array in F#
URL
Single Element in a Sorted Array - LeetCode
Code
https://github.com/syohex/dotnet-study/tree/master/fsharp/leetcode/problems/0540/main.fsx
let singleNonDuplicate (nums: int[]) : int =
let rec singleNonDuplicate' (nums: int[]) left right =
if left >= right then
nums.[left]
else
let mid = left + (right - left) / 2
let mid = if mid % 2 = 1 then mid - 1 else mid
if nums.[mid] = nums.[mid + 1] then
singleNonDuplicate' nums (mid + 2) right
else
singleNonDuplicate' nums left mid
singleNonDuplicate' nums 0 (nums.Length - 1)