FastPrepGroup Values into Equivalence Classes

Group Values into Equivalence Classes

Bloomberg LP logoBloomberg LP● MediumNEW GRADONSITE INTERVIEW
Learn

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.

More Bloomberg LP problems

See Bloomberg LP hiring insights
public int[][] equivalenceClasses(int[] values, int[][] equivalent) {
  // Write your code here.
}
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]]
expected[[1,4],[2,5],[3,6]]
Checking account…