查找两个 int 数组之间的差异

Finding the difference between two int arrays

我无法找出找出两个整数数组之间差异的算法。 我已经有了一个排序方法,它将运行通过所以数字是按升序排列的。

例如:

SetX = { 1, 2, 3, 4, 5 }

SetY = { 0, 2, 4, 6 }

return应该是SetX中没有出现在SetY中的数字。

所以 结果集 = { 1, 3, 5 }

有时候,如果我做小数组,我会得到正确的答案,但如果我做的数组长度为 4 个或更多整数,它就会给我错误的答案 return。

有人可以查看我的代码并告诉我我做错了什么吗?

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;
}

我认为您的条件语句有点胡扯。处理应该是:

  1. 如果 setX[a] > setY[b] -> b++
  2. 如果 setX[a] < setY[b] -> a++
  3. Else -> 将 setX[a] 添加到结果中,a++, b++