还有其他方法可以从数组中提取成对的元素吗?

时间:2019-05-10 03:16:13

标签: java

我正在考虑从ArrayList中提取元素对

例如,ArrayList的值为[1、2、3、4、5、6、7、8、9。 。 。 100],我应该将其配对。

简单的方法是依次制作(1,2)(1,3)(1,4)..(1,100)(2,3)(2,4)(2,5)。 。 ..(99,100)

但是,如果数组中有50000个元素,则需要花费很长时间。

我想知道是否有什么特别的方法。

1 个答案:

答案 0 :(得分:1)

问题的时空复杂度为O(n 2 ),这意味着任何解决方案都将很慢,但是您可能会发现实际上并不需要创建 所有对,而返回给定索引的对。

也许是这样的:

private int[] numbers;  // initialised elsewhere
int[] pair(int n) {
    return new int[]{numbers[n / numbers.length, numbers[n % numbers.length]};
}