Я пытался решить задачу 'OddOccurferencesInArray' с помощью c#, где нужно найти непарное целое число в данном массиве. Задача подготовлена на app.codility.com в уроках следующим образом: «дан непустой массив A, состоящий из N целых чисел. Массив содержит нечетное количество элементов, и каждый элемент массива может быть спарен с другим элементом, имеющим такое же значение, за исключением одного элемента, который остается непарным. " Мое решение:
public int solution(int[] A) {
int result=0;
Array.Sort(A);
for(int i=0;i<A.Length-1;i+=2){
if(A[i]!=A[i+1]){
result=A[i];
break;
}
}
return result;
}
Но встроенный анализ 'app.codility.com' говорит, что я сделал неправильно:
Correctness tests
▶ simple1 простой тест n = 5 ✘ НЕПРАВИЛЬНЫЙ ОТВЕТ получил 0 ожидаемых 4 ▶ simple2 простой тест n = 11 ✘ НЕПРАВИЛЬНЫЙ ОТВЕТ получил 0 ожидаемых 4 ▶ extreme_single_item [42] ✘ НЕПРАВИЛЬНЫЙ ОТВЕТ получил 0 ожидаемых 42 ▶ small1 маленький случайный тест n = 201 ✔ OK ▶ small2 маленький случайный тест n = 601 ✘ НЕПРАВИЛЬНЫЙ ОТВЕТ получил 0 ожидаемых 4242
Может ли кто-нибудь помочь мне в этом случае?
Обновление. Правильная форма моего решения:
public int solution(int[] A)
{
int result = 0;
Array.Sort(A);
if (A[A.Length - 2] != A[A.Length - 1])
{
return A[A.Length - 1];
}
for (int i = 0; i < A.Length - 2; i += 2)
{
if (A[i] != A[i + 1])
{
return A[i];
}
}
return result;
}