LeetCode 2610. Convert an Array Into a 2D Array With Conditions in F#
URL
Code
https://github.com/syohex/dotnet-study/blob/master/fsharp/leetcode/problems/2610/main.fsx
let findMatrix (nums: int list) : int list list =
let len = List.length nums
let rec findMatrix' nums visited acc =
if Set.count visited >= len then
acc
else
let s, visited' =
nums
|> List.fold
(fun (s, visited) (i, n) ->
if Set.contains i visited || Set.contains n s then
s, visited
else
Set.add n s, Set.add i visited)
(Set.empty, visited)
findMatrix' nums visited' ((Set.toList s) :: acc)
findMatrix' (List.indexed nums) Set.empty []