同じ数の数値を含む2つのint配列のセットがあります
例えば
int[] array1 = {1,3,5,5,2}
int[] array2 = {5,3,4,4,4}
2つの基準に基づいてそれらを比較する必要があります
- 同じインデックスで同じ値を持つ要素の数
- 異なるインデックスで同じ値を持つ要素の数
そして、値を表す整数の配列を返します
あなたがよりよく理解できるように、私はいくつかの例を持っています:
int[] array0 = {1,3,5,5,2};
int[] array1 = {5,3,4,4,4};
int[] array2 = {5,3,4,4,5};
int[] array3 = {2,3,2,2,4};
int[] array4 = {5,5,2,1,3};
int[] array5 = {3,1,5,5,2};
int[] array6 = {1,3,5,5,2};
compare(array0,array1); //this would return 1,1
compare(array0,array2); //this would return 1,2
compare(array0,array3); //this would return 1,1
compare(array0,array4); //this would return 0,5
compare(array0,array5); //this would return 3,2
compare(array0,array6); //this would return 5,0
最初の数字は簡単です。array1のインデックスiの要素がarray2の要素と同じかどうかを確認する必要があります。
配列の1つから最小の数を取得する必要があるため、2番目の数を生成するのに問題があります。array1の要素がarray2のどこかにあるかどうかを調べると、場合によっては間違った結果が生成されます。
あなたが見れば
int[] array1 = {1,3,5,5,2}
と
int[] array3 = {2,3,2,2,4};
そして、array1がインデックスのarray3と同じ内容を持っているかどうかを確認すると、3つの数値は等しいが、異なる場所に返されます。これは、最小の数値から判断し、結果が1になるため、間違っています。
あるインデックスでarray3がarray1と同じ内容であるかどうかを比較するために切り替えると、この場合は機能しますが、他の場合は機能しません。
これにアプローチする方法についてのアイデアはありますか、私はかなり無知ですか?