O que há de errado com essa solução? (Teste de codificação Perm-Missing-Elem)

Eu comecei a brincar com a codificação e me deparei com esse problema:

Uma matriz indexada com zero Uma forma de N inteiros diferentes é dada. A matriz contém números inteiros no intervalo [1 .. (N + 1)], o que significa que exatamente um elemento está faltando.

Seu objetivo é encontrar esse elemento ausente.

Escreva uma função:

int solution(int A[], int N); 

que, dado um array com índice zero A, retorna o valor do elemento ausente.

Por exemplo, dado array A tal que:

A [0] = 2 A [1] = 3 A [2] = 1 A [3] = 5

a função deve retornar 4, pois é o elemento ausente.

Assuma isso:

    N is an integer within the range [0..100,000];
    the elements of A are all distinct;
    each element of array A is an integer within the range [1..(N + 1)].

Complexidade:

    expected worst-case time complexity is O(N);
    expected worst-case space complexity is O(1), beyond input storage (not counting the storage required for input arguments).

Eu enviei a seguinte solução (em PHP):

function solution($A) {
    $nr = count($A);
    $totalSum = (($nr+1)*($nr+2))/2;
    $arrSum = array_sum($A);
    return ($totalSum-$arrSum);
}

o que me deu uma pontuação de 66 de 100, porque estava falhando no teste envolvendo grandes matrizes: "large_range range sequence, length = ~ 100,000" com o resultado: RUNTIME ERROR testado programa finalizado inesperadamente stdout: Tipo de resultado inválido, int esperado.

Eu testei localmente com uma matriz de 100.000 elementos, e funcionou sem problemas. Então, o que parece ser o problema com o meu código e que tipo de casos de teste a codilinidade usa para retornar "tipo de resultado inválido, int esperado"?

questionAnswers(28)

yourAnswerToTheQuestion