Zähle die gleiche Wertnummer im Array

8

Ich arbeite an einer Aufgabe, bei der ich den kleinsten Wert in einem Array finden und zählen kann, wenn die Anzahl mehr als einmal auftritt. Ich denke, ich habe das Format unten, aber es gibt mir eine weitere Zählung als es Zahlen gibt (4 statt 3). Kann mir jemand ein paar Tipps geben? Schätze jede Hilfe!

%Vor%
    
grasshopper 21.07.2017, 22:25
quelle

5 Antworten

4

Immer wenn Sie neue kleinste erhalten, dann ist ein Reset erforderlich.

Warum muss Count auf 0 und nicht auf 1 zurückgesetzt werden?

weil die Bedingung mit dem kleinsten Wert überprüft === arr [i], bedeutet, dass Sie dasselbe Element überprüfen, das Sie jetzt gespeichert haben

%Vor%
    
Kaps 21.07.2017, 22:28
quelle
2

Sie können hier zwei Schleifen verwenden und zuerst die kleinste Zahl erhalten und dann die Häufigkeit zählen. Die Zeitkomplexität ist immer noch O (n).

%Vor%
    
Dij 21.07.2017 22:27
quelle
1

Beim ersten Durchlauf der Schleife ist smallest das erste Element im Array, so wie Sie es deklarieren

%Vor%

Also ist in der ersten Iteration smallest bereits 5 , und so ist array[i] , da es momentan auch array[0] ist, wo die Schleife beginnt, also sind sie gleich, was bedeutet, dass Ihre Bedingung wahr ist in der ersten Iteration, und die Anzahl erhöht sich.

Sie gehen wirklich in die falsche Richtung Am einfachsten wäre es, Math.min zu verwenden, um die kleinste Zahl im Array zu finden, und dann das Array basierend darauf zu filtern und zu sehen, wie viele Indizes übrig sind

%Vor%
    
adeneo 21.07.2017 22:30
quelle
0

Sie setzen den kleinsten Wert auf

%Vor%

und wenn Aussage sagt

%Vor%

es ist immer wahr. Sie müssen die kleinste = 0 oder kleinste = 1 festlegen.

    
Sefa Şahinoğlu 21.07.2017 22:29
quelle
0

Sie sollten count auf 0 setzen, wenn Sie smallest

ersetzen %Vor%     
Yuval Ben-Arie 21.07.2017 22:27
quelle

Tags und Links