【发布时间】:2017-02-20 20:06:52
【问题描述】:
假设我有这个数组:[a,b,c,d] 我将如何找到每个可能的组合,即 ab,abc,abcd.....等。 这需要包含重复项,所以 abcd 与 dcba 不一样 目的是查找所有组合并检查是否可以从不同的数组中进行相同的组合。我最初的尝试是:
for (int i = 0; i < values.length; i++) {
String cur = values[i];
for (int k = 0; k < values.length; k++) {
if (i != k) {
cur = cur.concat(values[k]);
System.out.println(cur);
}
}
}
哪个给出输出:
ab
abc
abcd
ba
bac
bacd
ca
cab
cabd
da
dab
dabc
这显然是不正确的
这是针对我正在尝试改进的编程挑战,因此任何关于更快解决方案的建议都会有所帮助
【问题讨论】:
-
开始于-> en.wikipedia.org/wiki/…
-
数组是否有可能多次包含相同的元素?如果数组 #1 是 [a, b, c] 并且数组 #2 是 [b, c, d] 都包含组合 [b, c] (和 [c, b]),那么这是否已经被视为匹配?
-
open.kattis.com/problems/correspondence 这是完整的问题,并在底部给出示例输入。我已经实现了匹配,但我遇到的问题是找到每个数组的可能组合。我能找到的所有解决方案似乎都提供了 {a,b,c} 与 {c,b,a} 相同的答案,我特别需要将这两者视为不同,即顺序很重要
标签: java arrays combinations