gpt4 book ai didi

java - 通过从每个集合中取一个值来计算一对的集合

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:53:29 25 4
gpt4 key购买 nike

我正在尝试计算可能的对数,这可以通过从两个集合中获取值来实现。没有人设重复。我也在尝试使用 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

Here is Code:

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] 和以前一样,但是因为它是 Set None,所以它会在之间创建集合将 None 设置为额外的,例如 [1,3]

Output:
5 combination to choose pair by taking one value from each set

这里可能是这样的答案,总组合 =(第一组和第二组与产品的可能组合)+(第一组和第二组的可能组合,每个都没有设置)+(没有不同值的所有可能组合)

如果是,如何计算。输入范围在 1 到 10^5 之间。谢谢。

最佳答案

要计算您可以简单使用的组合总数

int a = set1.size() * set2.size();

要计算 n 元素对的总数,您可以使用公式 (n*n - n)/2,因此在您的示例中这可能是

int x = setNone.size();
int b = (x * x - x) / 2

关于java - 通过从每个集合中取一个值来计算一对的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52910086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com