找到两个int数组之间的区别

时间:2016-12-06 16:22:35

标签: java arrays set-difference

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

例如:

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

1 个答案:

答案 0 :(得分:1)

我认为你的条件有点FUBAR。处理应该是:

  1. 如果setX [a]&gt; setY [b] - &gt;基础B ++
  2. 如果setX [a]&lt; setY [b] - &gt;一个++
  3. 其他 - &gt;将setX [a]添加到结果,a ++,b ++