给定一个整数集合,什么是给出如下组合的Java算法。
给定示例集合: 1,3,5,我们需要输出:
[1-1]
[3-3]
[5-5]
[1-3]
[1-5]
[3-5]请注意,排序并不重要,因此我们需要1-3、3-1中的一个,但不是两个都要。
这应该适用于n个数字的集合,而不仅仅是本例中的三个数字。
发布于 2010-07-28 01:44:06
下面的函数应该做到这一点
private void printPermutations(int[] numbers) {
for(int i=0;i<numbers.length; i++) {
for (int j=i; j<numbers.length; j++) {
System.out.println("[" + numbers[i] + "-"+ numbers[j] +"]");
}
}
}此函数的示例调用
int[] numbers={1,2,3};
printPermutations(numbers);发布于 2010-07-28 01:48:27
听起来像是homework...but,不管怎么说。显然,你可以不使用ArrayList,等等--只是快速和肮脏。
import java.util.ArrayList;
public class Test {
public static void main(String[] args) {
int[] input = {1, 3, 5};
ArrayList<String> output = new ArrayList<String>();
int n = input.length;
for (int left = 0; left < n; left++) {
output.add("["+input[left]+"-"+input[left]+"]");
for (int right = left + 1; right < n; right++) {
output.add("["+input[left]+"-"+input[right]+"]");
}
}
System.out.println(output.toString());
}
}发布于 2010-07-28 01:41:45
这是你想要的逻辑。
function subsequences (arr) {
arr.sort ();
var subseqs = [];
for (var i = 0; i < arr.length; ++i) {
for (var j = i; j < arr.length; ++j) {
subseqs.push ("" + arr [i] + "-" + arr [j]);
}
}
return subseqs;
}https://stackoverflow.com/questions/3346249
复制相似问题