Wie kann ich die eindeutigen Zahlen in einem Array zählen, ohne die Array-Elemente neu anzuordnen?

7

Ich habe Probleme, die eindeutigen Werte in einem Array zu zählen, und ich muss dies tun, ohne die Array-Elemente neu anzuordnen.

Wie kann ich das erreichen?

    
jarus 05.03.2009, 05:30
quelle

4 Antworten

15

Wenn Sie .NET 3.5 haben, können Sie dies mit LINQ einfach über:

erreichen %Vor%

Nicht LINQ:

%Vor%     
Quintin Robinson 05.03.2009 05:31
quelle
6

Dies ist eine weitaus effizientere Nicht-LINQ-Implementierung.

%Vor%     
Sam Saffron 05.03.2009 05:43
quelle
1

O (n) Laufzeit max_value Speicherbelegung

%Vor%     
Jimmy Jazz 07.03.2009 10:12
quelle
0

Sollen nur die einzelnen Werte gezählt werden oder sollte jede Zahl im Array gezählt werden (z. B. "Nummer 5 ist dreimal enthalten")?

Die zweite Anforderung kann mit den Startschritten des Zählsortieralgorithmus erfüllt werden.
Es wäre etwa so:

  • Erstellen Sie eine Menge, in der sich der Index / Schlüssel befindet das zu zählende Element
  • Ein Schlüssel ist mit einer Variablen verbunden, die die Anzahl der Vorkommen enthält des Schlüsselelements
  • iteriere das Array
    • Erhöhungswert des Schlüssels (Array [Index])

Grüße

    
user51478 05.03.2009 22:41
quelle

Tags und Links