我无法找出能找出两个整数数组之间差异的算法。 我已经有了一个排序方法,它将会通过所以数字按升序排列。查找两个int数组之间的差异
例如:
SETX = {1,2,3,4,5}
SETY = {0,2,4,6}
返回应该是SetX中没有出现在SetY中的数字。
所以的resultSet = {1,3,5}
有时我得到正确的答案,如果我做的小数组,但如果我这样做,是4个或多个整数数组渴望它给了我错误的返回。
有人可以看看我的代码,并告诉我我做错了什么?
public static int firstFruit(int[] setX, int usedSizeSetX, int[] setY, int usedSizeSet2, int[] resultSet) {
int a = 0, b = 0, c = 0;
while(a < usedSizeSetX && b < usedSizeSetY){
if(setX[a] == setY[b]) {
a++;
} else if(setX[a] == setY[b]){
b++;
} else {
resultSet[c++] = setX[a++];
b++;
}
}
return c;
}
你可以举一些例子输入,它给出了错误的答案? – BretC
你的前两次检查完全一样。你永远不会进入第二个条件... – jgitter
[这里](https://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html)有一个所有的列表类** Array **提供的方法。对于一个数组中的每个元素,您可以使用binsearch来查找它是否出现在另一个数组中。 –