LeetCode 2134. Minimum Swaps to Group All 1's Together II in F#
URL
Minimum Swaps to Group All 1's Together II - LeetCode
Code
let minSwaps (nums: int list) : int =
let minSwaps' nums v =
let countNum = List.filter ((=) v) >> List.length
let total = countNum nums
let maxValInWindow = nums |> List.windowed total |> List.map countNum |> List.max
total - maxValInWindow
min (minSwaps' nums 0) (minSwaps' nums 1)