LeetCode 1218. Longest Arithmetic Subsequence of Given Difference in F#
URL
Longest Arithmetic Subsequence of Given Difference - LeetCode
Code
https://github.com/syohex/dotnet-study/tree/master/fsharp/leetcode/problems/1218/main.fsx
open System
let longestSubsequence (arr: int list) (difference: int) : int =
arr
|> List.fold
(fun (m, ret) n ->
match Map.tryFind (n - difference) m with
| Some(v) -> Map.add n (v + 1) m, Math.Max(ret, v + 1)
| None -> Map.add n 1 m, ret)
(Map.empty, 1)
|> snd