2016-04-19 13 views

Antwort

1

ich finden vorschlagen, dass Sie eine map<int,int> counters zu erklären, dann jedes Element Ihrer Matrix einfügen in die Karte und wenn das Element bereits vorhanden erhöht nur die relativen Zähler:

map<int,int> counters; 
... 
if(counters.count(yourNumber)==0) 
    counters[yourNumber] = 1 
else 
    counters[yourNumber]++ 

und nach dem Zähler des letzten Elements erhalten:

return counters.rbegin()->second; 

Ich hoffe es hilft!

+0

Diese Methode benötigt zusätzlichen Speicher, ich akzeptiere es trotzdem. Vielen Dank. – neouyghur

+0

ja du hast Recht! Hier ist die Komplexität des Gedächtnisses O (N), wobei N die Anzahl der verschiedenen Elemente in der Matrix ist. Es hängt also wirklich von der Anzahl der Elemente ab (klein, groß ...). Eine Lösung mit weniger Speicherbedarf sollte vorhanden sein, aber unter Berücksichtigung der Laufzeit möglicherweise weniger effizient sein. Es ist immer ein Kompromiss zwischen Speicher und Laufzeit. –

Verwandte Themen