首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获得一个(int)数组的所有可能的元素组合?

如何获得一个(int)数组的所有可能的元素组合?
EN

Stack Overflow用户
提问于 2020-05-20 18:46:12
回答 2查看 202关注 0票数 0

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

这就是我想做的..。

代码语言:javascript
复制
            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++;        
                }
            }

我的结果列表会是这样的。

代码语言:javascript
复制
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

代码语言:javascript
复制
for (int v : list) {
    System.out.println(v);
}

产出:1 2 3 4 1 2

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-20 19:13:16

这样做如下:

代码语言:javascript
复制
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));
    }
}

输出:

代码语言:javascript
复制
[1, 2, 3, 4, 1, 2, 3, 1, 2, 1]
票数 0
EN

Stack Overflow用户

发布于 2020-05-20 19:00:19

对于任何值n,以下内容都应该可以工作。关键是将内环的终止点建立在外环的终止点上。

代码语言:javascript
复制
System.out.println(string);
int n = 5;
int[] num = {1, 2, 3, 4, 5};
int length = (n * (n - 1)) / 2;

int m = 0;
int[] list = new int[length];
for (int i = 1; i<n ; i++) {
    for (int k = 1; k <= n-i; k++) {
        list[m++] = num[k-1];
    }
}
System.out.println(Arrays.toString(list));

打印

代码语言:javascript
复制
1 2 3 4 1 2 3 1 2 1 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61920612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档