2つの整数配列の違いを見つけるアルゴリズムを理解するのに問題があります。 私はすでにソート方法を持っていますので、番号は昇順になっています。2つの整数配列の違いを見つける
SETX = {1、2、3、4、5}
SETY = {0、2、4、6}
リターン:例えば
SetYには表示されないSetXの番号でなければなりません。私は小さな配列をすれば
のでた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
最初の2つの小切手はまったく同じです。 2番目の条件に入ることはありません。 – jgitter
[ここ](https://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html)クラス** Array **が提供するメソッド1つの配列の各要素に対して、binsearchを使用して、他の配列に表示されているかどうかを調べることができます。 –