Group Values into Equivalence Classes
Problem statement
equivalent[i][j] is the result of an equivalence callback for values[i] and values[j]. The matrix describes an equivalence relation.
Return the equivalence classes in the order their first member appears, preserving input order inside each class.
Function
equivalenceClasses(values: int[], equivalent: int[][]) → int[][]Examples
Example 1
values = [1,2,3,4,5,6]equivalent = [[1,0,0,1,0,0],[0,1,0,0,1,0],[0,0,1,0,0,1],[1,0,0,1,0,0],[0,1,0,0,1,0],[0,0,1,0,0,1]]return = [[1,4],[2,5],[3,6]]The matrix encodes equality modulo three.
Constraints
values.length == equivalent.length.- The matrix is square, reflexive, symmetric, and transitive.
values.length <= 1000.