鉴于整数的集合,什么是Java的算法,将如下给出的组合..Java的组合算法
给出的例子集合:[1,3,5],我们会想输出:
[1-1]
[3-3]
[5-5]
[1-3]
[1-5]
[3-5]
请注意,排序并不重要,所以我们想要[1-3],[3-1]中的一个,但不是两个。
这应该与n个数字的集合,而不仅仅是这个例子中的三个数字。
鉴于整数的集合,什么是Java的算法,将如下给出的组合..Java的组合算法
给出的例子集合:[1,3,5],我们会想输出:
[1-1]
[3-3]
[5-5]
[1-3]
[1-5]
[3-5]
请注意,排序并不重要,所以我们想要[1-3],[3-1]中的一个,但不是两个。
这应该与n个数字的集合,而不仅仅是这个例子中的三个数字。
下面的功能应该这样做
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);
这是您想要的逻辑。
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;
}
听起来像功课......但在这里它是无论如何。显然,你可以在没有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());
}
}