Я пытаюсь рассчитать возможное количество пар, которое можно сделать, взяв значение из двух двух наборов.Никто не устанавливает репликацию.Я также пытаюсь реализовать это с помощью Java Set.Но я застрял в логике, как посчитать такую возможную комбинацию.
Пример проблемы:
Input:
Set 1: [0, 1, 4]
Set 2: [2, 3]
Set None: []
Здесь, возможные комбинации пар: [0,2], [0,3], [1,2], [1,3], [4, 2], [4,3]
Output:
6 combination to choose pair by taking one value from each set
Вот код:
static Set<Integer> countryOne = new HashSet();
static Set<Integer> countryTwo = new HashSet();
static Set<Integer> countryNone = new HashSet();
static int journeyToMoon(int n, int[][] astronaut) {
///Separating diffrent country from input
countryOne.add(astronaut[0][0]); countryOne.add(astronaut[0][1]);
for(int i=1; i<astronaut.length; i++){
boolean countryCheckFlag = false;
for(int j=0; j<astronaut[i].length; j++){
if(countryOne.contains(astronaut[i][j])){
countryCheckFlag = true;
}
}
if(countryCheckFlag){countryOne.add(astronaut[i][0]); countryOne.add(astronaut[i][1]);}
else {countryTwo.add(astronaut[i][0]); countryTwo.add(astronaut[i][1]);}
}
///Separating country which not present in input
for(int i=0; i<n; i++){
if(!countryOne.contains(i) && !countryTwo.contains(i))
countryNone.add(i);
}
//Now i have two diffrent set
return 0;
}
Вход может быть разным на определенном уровне, например
Input:
Set 1: [0, 2]
Set 2: []
Set None: [1, 3]
Здесь, возможные комбинации пар: [0,1], [0,3], [2,1], [2,3], как и раньше, но так как оно установлено None, то оносоздаст набор между Set None как дополнительный, например, [1,3]
Output:
5 combination to choose pair by taking one value from each set
Здесь Might be Answer like, Total комбинация = (возможная комбинация набора один и набора два с продуктом) + (возможная комбинацияустановите 1 и установите 2 с заданным none каждый) + (Все возможные комбинации Set None с разным значением)
Если это так, как его рассчитать.Диапазон ввода будет от 1 до 10 ^ 5.Спасибо.