快速约会回合匹配算法[Java]

问题描述 投票:-1回答:1

这是有关逻辑和Java实现的问题。

假设您有6个男人和6个女人,您必须有6轮快速约会,每个男人才能与每个女人说话。 -一个男人最多只能与一个女人说话,反之亦然。

如何在计算机科学逻辑中实现?

假设数据如下:

Men = [ "John", "Jack", "James", "Joe", "Jamal", "Jeff ]
Women = [ "Jill", "Jane", "June", "Jackie", "Joan", "Janet" ]

一对配对看起来像:

John -> Jill
Jack -> Jane
James -> June
Joe -> Jackie
Jamal -> Joan
Jeff -> Janet

在下一轮中,它应显示如下,依此类推:

John -> Janet
Jack -> Jill
James -> Jane
Joe -> June
Jamal -> Jackie
Jeff -> Joan

输出需要存储一个ArrayList或类似的对,例如[[“ John”,“ Janet] [” Jack“,” Jill“]]

这些回合需要存储为ArrayLists或类似的ArrayList。以RoundName为键,以6对为值。

algorithm logic matching pairing
1个回答
0
投票

最简单的方法是使用嵌套循环来遍历数组并将项目附加到每次迭代中。

ArrayList<String> couples = new ArrayList<String>();

for(int i = 0; i < Men.length; i++){
  for(int j = 0; j < Women.length; j++){
    couples.add(Men[i] + " " + Women[j]);
  }
}

对于大小为M和N的两个数组,将采取M * N步

© www.soinside.com 2019 - 2024. All rights reserved.