java - 如何获取一个(int)数组的元素的所有可能组合?

标签 java arrays

我一直在编写代码来从数组中获取元素的所有组合,但我不知道如何做到这一点。大家能给我一些建议吗?

这就是我想做的事...

            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/

相关文章:

java - 如何比较STL数据结构中的对象

java - 检查java中两个对象之间的碰撞

java - 扩展 IOException

java - 解析更新对象而不更改updatedAt

c++ - error C2352 非法调用非静态成员函数

java - 用于访问特定选项卡内容(如果存在)的通用 xpath

c - 为什么我们需要使用双指针来访问二维数组?

python - 获取与numpy中的条件匹配的行的行号

C 编程——值交换是在随机数组槽中生成新值

c - 为什么这不会出现分段违规错误?