双向比较/匹配所有元素的算法

问题描述

| 最巧妙的算法是什么?是否可以在没有帮助/静态变量的情况下完成?     

解决方法

        使用两个“ for”循环。假设您不需要将元素与它们自己进行比较,并且只需要以一种方式而不是两种方式测试每一对:
for (int i = 1; i < ints.length; ++i) {
    for (int j = 0; j < i; ++j) {
        match(ints[i],ints[j]);
    }
}
如果您想同时使用所有对,只需将
j < i
更改为
j < ints.length
。如果您想双向配对(不包括自我比较),则在内循环中添加
if (i != j)
,或者从0到
i-1
进行一个内循环,而从
i+1
ints.length
进行另一个内循环。