-1

2 つの整数配列の違いを見つけるアルゴリズムがわかりません。番号が昇順になるように、実行される並べ替え方法が既にあります。

例えば:

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

SetY = { 0, 2, 4, 6 }

戻り値は、SetY に表示されない SetX の数値である必要があります。

したがって、結果セット = { 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;
}
4

1 に答える 1