我一直在编写代码来从数组中获取元素的所有组合,但我不知道如何做到这一点。大家能给我一些建议吗?
这就是我想做的事...
int[] num = {1, 2, 3, 4, 5};
int n = num.length;
int length = (n * (n - 1)) / 2;
int[] list = new int[length];
for (int j = 0; j < n - 1; j++) {
for (int p = 4;p < n; p--) {
for (int i = 0; (I < length); i++) {
list[i] = Math.abs(num[j] - num[j + p]);
}
p++;
}
}
我的结果列表将如下所示..
list = {1, 2, 3, 4, 1, 2, 3, 1, 2, 1};
提前谢谢您。
编辑:我真的很抱歉我没有清楚地发布我的问题。我试图做的是获取从数组中减去每个值的绝对值。 例如) 1-2 , 1-3, 1-4, 1-5, 2-3, 2-4, 2-5, 3-4, 3-5, 4,5
for (int v : list) {
System.out.println(v);
}
输出: 1 2 3 4 1 2 ...
最佳答案
按如下方式进行:
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] num = { 1, 2, 3, 4, 5 };
int n = num.length;
int length = (n * (n - 1)) / 2;
int[] list = new int[length];
// Index counter for list[]
int c = 0;
for (int i = n - 1; i >= 0; i--) {
for (int j = 0; j < i; j++) {
list[c++] = num[j];
}
}
// Display
System.out.println(Arrays.toString(list));
}
}
输出:
[1, 2, 3, 4, 1, 2, 3, 1, 2, 1]
关于java - 如何获取一个(int)数组的元素的所有可能组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61920612/