LeetCode 462. Minimum Moves to Equal Array Elements II in F#
URL
leetcode.com/problems/minimum-moves-to-equa..
Code
github.com/syohex/dotnet-study/blob/master/..
open System
let minMoves2 (nums: int list) : int =
let rec minMoves2' (nums: int64 list) (origs: int64 list) (ret: int64) =
match nums with
| [] -> ret |> int
| h :: t ->
let sum =
origs
|> List.fold (fun acc n -> acc + (Math.Abs(n - h))) 0L
minMoves2' t origs (Math.Min(ret, sum))
let nums' = nums |> List.map int64
minMoves2' nums' nums' Int64.MaxValue