LeetCode 81. Search in Rotated Sorted Array II in F#
URL
Search in Rotated Sorted Array II - LeetCode
Code
let search (nums: int[]) (target: int) : bool =
let rec search' (nums: int[]) left right target =
if left > right then
false
else
let mid = left + (right - left) / 2
if nums.[mid] = target then
true
elif nums.[left] < nums.[mid] then
if nums.[mid] > target && nums.[left] <= target then
search' nums left (mid - 1) target
else
search' nums (mid + 1) right target
elif nums.[left] > nums.[mid] then
if nums.[mid] < target && target < nums.[left] then
search' nums (mid + 1) right target
else
search' nums left (mid - 1) target
else
search' nums (left + 1) right target
search' nums 0 (nums.Length - 1) target