Что не так с моим решением Java для Codility MissingInteger? [закрыто]

Я пытаюсь решить проблему MissingInteger codilityссылка на сайт:

Напишите функцию:

class Solution { public int solution(int[] A); }

что для непустого массива с нулевым индексом A из N целых чисел возвращается минимальное положительное целое число, которое не встречается в A. Например, задано:

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

функция должна вернуть 5.

Предположим, что:

N представляет собой целое число в диапазоне [1..100,000]; каждый элемент массива A является целым числом в диапазоне [−2,147,483,648..2,147,483,647].

Сложность:

ожидаемая сложность времени в наихудшем случае составляет O (N); ожидаемая сложность пространства в худшем случае составляет O (N), за пределами хранилища ввода (не считая хранилища, необходимого для входных аргументов). Элементы входных массивов могут быть изменены.

Мое решение:

class Solution {
    TreeMap<Integer,Object> all = new TreeMap<Integer,Object>();

    public int solution(int[] A) {

        for(int i=0; i<A.length; i++)
            all.put(i+1,new Object());

        for(int i=0; i<A.length; i++)
            if(all.containsKey(A[i]))
                all.remove(A[i]);

        Iterator notOccur = all.keySet().iterator();
        if(notOccur.hasNext())
            return (int)notOccur.next();

        return 1;

    }
}

Результат теста:

Может кто-нибудь объяснить мне, почему я получил эти два неправильных ответа? Особенно первый, если в массиве только один элемент, не должен ли единственный правильный ответ быть 1?

Ответы на вопрос(5)

Ваш ответ на вопрос