问题描述
|
最巧妙的算法是什么?是否可以在没有帮助/静态变量的情况下完成?
解决方法
使用两个“ 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
进行另一个内循环。