2017-09-04 2 views
-5

Ich versuche, das spezielle Problem zu beheben, das ich in meinem Interview bekommen habe (Das Problem war, das kleinste Element mit der Frequenz genau zu finden f). Ich denke, ich habe die Lösung in großem Umfang entwickelt, aber das Problem ist in Bezug auf einige Glitch, die wiederum einige falsche Ausgabe erzeugt. Ich habe alles versucht, überprüft und überprüft den Code, aber das Problem besteht immer noch. Da ich ein Anfänger in Java-Programmierung bin und daher nicht viel Ahnung darüber habe, bitte helfen Sie mir. Im Folgenden finden Sie, was ich versucht:Code erzeugt keine erwartete Ausgabe

public static int smallestKFreq(int a[], int n, int f) 
    { 
     HashMap<Integer, Integer> map = new HashMap<Integer, Integer>(); 

     // Map is used to store the count of 
     // elements present in the array 
     for (int i = 0; i < n; i ++) 

      if (map.containsKey(a[i])) 
       map.put(a[i], m.get(a[i]) + 1); 

      else map.put(a[i], 1); 

     // Traverse the map and find minimum 
     // element with frequency f. 
     int res = Integer.MAX_VALUE; 
     Set<Integer> s = map.keySet(); 

     for (int temp : s) 
      if (map.get(temp) == f) 
       res = Math.min(res, temp); 

     return (res != Integer.MAX_VALUE)? res : 1; 
    } 
+2

* "Code generiert Fehler bei der Kompilierung" * *** *** und kompilieren Zeitfehler ?! –

+0

Sir es erzeugt unterschiedliche Ausgabe !!! '{1,2,3,2,2,1,3}' dann Ausgabe ist '3' – BaijNR

+1

Also ... ** nicht ** eine Kompilierzeit Fehler. –

Antwort

1

Okay, so auf Ihre Frage suchen scheint es, wie Sie return Aussage falsch haben !!!

sollte es sein

return (res !=Integer.MAX_VALUE)?res : -1;

Versuchen Sie, diese Ich denke, es sollte das Problem zu beheben ...

+0

Danke @ mandy8055, es funktioniert, aber bitte sagen Sie mir, warum das Ersetzen von '-1' funktioniert? – BaijNR

+0

@BaijNR Wenn Sie die Logik verstanden haben, die Sie geschrieben haben, dann sagt es klar, dass das Ergebnis mit minimalem Wert und mit maximaler Häufigkeit zurückgegeben wird, so dass das Ergebnis entweder dieses Element oder gar nichts zurückgeben muss ... – Mandy8055

Verwandte Themen