当前位置: 首页 > 知识库问答 >
问题:

通过从每组中获取一个值来计算对集

桓瀚
2023-03-14

我试图计算可能的成对数,这可以通过从两个集合中获取值来实现。没有人停下来Rest。我还尝试使用JavaSet实现它。但我陷入了逻辑,如何计算这种可能的组合。

问题示例:

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

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

这里可能是答案,如,总组合= (集合 1 和集合 2 与乘积的可能组合)(集合 1 和集合 2 的可能组合,每个集合无)(集合无的所有可能组合具有不同值)

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

共有1个答案

邹毅
2023-03-14

要计算组合总数,只需使用

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

要计算n元素对的总数,可以使用公式(n*n-n)/2

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

 类似资料:
  • 我有数据库与表如图所示。 列包含重复的值,每个值必须计算在数据库中出现的次数。 如果计数为

  • 我现在花了几个小时在这里阅读这个问题的解决方案,就像这样:从setTimeout获取返回值 但是我找不到任何解决问题的方法来获取removeCount值。我还试图添加一个promise,但我不知道如何使用增量。

  • 我的数据如下: 我想计算每个小组自上一个日期以来每年经过的天数。当我尝试这样做时,输出不是对数据进行分组。例如,输出会将组 B 2019-07-15 和组 A 2019-08-21 之间的天数计算为负值,而不是计算自每个日期 WITHIN 组以来经过的天数。 我尝试了以下代码,这导致了我在上面描述的问题: 提前谢谢!

  • 问题内容: 所以我查了一下,这个问题非常相似,但是它缺少一个关键点:SQL Server计算表的每一列中不同值的数量 因此,在这个问题中,他们希望每列的计数都不同。我想要做的是获取表中每个列的每个不同值的计数(而我正在为特定数据库中的所有表执行此操作,这就是为什么我要尝试尽可能地自动化这一点的原因尽可能)。当前,我的代码看起来像这样,我必须为每一列运行: 理想情况下,我的输出应如下所示: 以此类推

  • 我如何在事先不知道钥匙和价值的情况下获得每个物品的钥匙和价值?

  • 问题内容: 我需要在每笔 数据中都计算唯一值 我尝试 但是我想得到 问题答案: 您需要: 如果需要字符: 或正如乔恩所说: 您可以像这样保留列名: 区别在于返回一个Series并返回一个DataFrame。