0

25 個の数字の配列があり、15 個の数字の別の配列があります。25 個の数字の配列で 15 個の数字の 5 つの一致を正確に (それ以上でも以下でもない) 見つけるための最速の方法は何ですか?

例:

int[] array1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 }

int[] array2 = { 1, 2, 3, 4, 5, 36, 77, 88, 49, 50, 51, 52, 53, 54, 55 }

int[] array3 = { 1, 2, 3, 4, 5, 6, 26, 17, 28, 29, 30, 31, 32, 33, 34 }

int[] array4 = { 1, 2, 3, 28, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 }

この例では、正確に 5 つの一致があるため、array2 が有効な配列ですが、array3 と array4 は有効ではありません。

4

3 に答える 3

0

このメソッドはあまり多くの作業を行いません:

bool CompareCount(int[] array1, int[] array2, int count)
{
    // Check that the arrays contain at least count of integers.
    if (array1 == null || array1.length < count) return false;
    if (array2 == null || array2.length < count) return false;

    // Check that the first count integers are identical.
    for(int i = 0; i < count; count++)
       if (array1[i] <> array2[i]) return false;
    // If one of the arrays only contains count integers, then its okay.
    if (array1.length == count || array2.length == count) return true;

    // If the next integers are different, then its okay. 
    return array1[count] != array2[count];
}
于 2013-08-15T19:50:53.817 に答える