Was stimmt nicht mit meiner Java-Lösung für Codility MissingInteger? [geschlossen

Ich versuche das Codility MissingInteger Problem zu lösenVerknüpfun:

Schreibe eine Funktion:

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

that gibt bei einem nicht leeren, nullindexierten Array A mit N Ganzzahlen die minimale positive Ganzzahl zurück, die in A nicht vorkommt. Beispiel:

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

die Funktion sollte 5 zurückgeben.

Annehmen, dass

N ist eine ganze Zahl im Bereich [1..100.000]; jedes Element von Array A ist eine ganze Zahl im Bereich von [−2,147,483,648..2,147,483,647].

Komplexität

Erwartete Zeitkomplexität im ungünstigsten Fall ist O (N); Die erwartete Speicherkomplexität im ungünstigsten Fall ist O (N) jenseits des Eingabespeichers (ohne den für Eingabeargumente erforderlichen Speicher). Elemente von Eingabearrays können geändert werden.

Meine Lösung ist:

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;

    }
}

Das Testergebnis lautet:

ann mir jemand erklären, warum ich diese zwei falschen Antworten erhalten hab Vor allem das erste, wenn es nur ein Element im Array gibt, sollte die einzig richtige Antwort nicht 1 sein?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage