Mam następujących klas:Algorytm do grupy obiektów
class Sport {
private String sportsName;
private List<People> peopleWhoPlayThisSport;
//...
}
class People {
private String name;
private long uniqueId;
// ...
}
Moje wejście znajduje się lista obiektów sportowych, dla prostoty rozważyć poniższe przykłady:
sport1 - Football, <Sam, Dylan>
sport2 - Basketball, <Tyler, John>
sport3 - Baseball, <Carter, Dylan>
sport4 - Hockey, <Kane, Michael>
sport5 - Soccer, <Carter, Frank>
muszę tworzyć a List<List<>>
, tak że lista wewnętrzna to wszystkie dyscypliny sportowe, które mają co najmniej 1 wspólnego gracza (tutaj obowiązuje funkcja przechodnia). W powyższym przykładzie dane wyjściowe powinny być:
<<sport1,sport3,sport5> , <sport2> , <sport4>>
Jakieś sugestie dotyczące rozwiązania tego i/lub pseudokodu?
Rozłączny zestaw datastructure. Union-find. –