列出整数数组的所有可能组合

时间:2017-11-04 08:22:02

标签: java

问题:找到给定集合的所有可能组合。

说明:

Ex:1;

输入

3(整数数组中的元素数量)

0 1 2

预期产出:

(0,1)(0,2)(1,2)

Ex 2

输入

5(元素数量)

0 1 2 3 4(整数数组)

预期输出

(0,1),(0,2),(0,3)(0,4)

(1,2)(1,3)(1,4) (2,3)(2,4)(3,4)

我的实施:

   static void traverse( int[] ar) {
      int n  = ar.length;
      for(int i=0;i<(n-1);i++) {
       for(int j = (i+1);j<n;j++) {
           System.out.printf("%d %d", i,j);
       }
     }
   }

输出: 0 10 21 2 任何人都可以提出逻辑上的缺陷吗?

1 个答案:

答案 0 :(得分:1)

我认为这种组合仅限于两个数字,而且我认为顺序并不重要,而是你只是在寻找数字组合而不是排列。

所以这里是您提交内容的修改后的代码。

static void traverse(int[] ar) {
    for (int i = 0; i < ar.length - 1; i++) {
        for (int j = i + 1; j < ar.length; j++) {
            System.out.printf("(%d,%d) ", ar[i], ar[j]);
        }
    }
}

这将产生所需的答案。