LeetCode 509. Fibonacci Number in F#
URL
leetcode.com/problems/fibonacci-number
Code
github.com/syohex/dotnet-study/blob/master/..
let fib (n: int) : int =
let rec fib' n cache =
match n with
| 0 -> 0, cache
| 1 -> 1, cache
| _ ->
match Map.tryFind n cache with
| Some (v) -> v, cache
| None ->
let ret', cache' = fib' (n - 1) cache
let ret'', cache'' = fib' (n - 2) cache'
let ret = ret' + ret''
ret, Map.add n ret cache''
fib' n Map.empty |> fst