我正试图找出一种快速的方法来比较"不同的" int数组来自另一个int数组。我将在滑动拼图解算器中使用此功能。这是一个例子:
{0,1,3,2,4,5,7,6,8}
{0,1,2,3,4,5,6,7,8}
这里,4个元素(2,3,6,7)无序。有没有快速的方法来确定这个?我试着想办法,例如for循环,但这似乎很幼稚。此外,可能使用以下内容:
Arrays.hashCode(array1) - Arrays.hashCode(array2)
将是一种确定的方法吗? 另外,请注意,我不一定要确定许多元素是如何乱序的,而是因为我将在A *启发式中使用它,因此只是两个数组的不同之处。
答案 0 :(得分:0)
我认为你不会比循环更有效率:
different = 0;
for (i=0; i<len; i++) {
if (*a++ != *b++) { // walk through lists using 1 pointer each
different++;
}
}
答案 1 :(得分:0)
int a[]= {0,1,3,2,4,5,7,6,8};
int b[]={0,1,2,3,4,5,6,7,8};
int diff=0;
for (int i=0;i<a.length;i++){
if(a[i]!=b[i])
diff++;
}