I wurde Code für this problem Schreiben:Python - Reduzieren Zeitverbrauch
ein Array mit N Elementen A angegeben. Finde die Gesamtzahl der Paare (i, j), so dass j < i und Aj = Ai.
Dies ist mein Code:
raw_input()
l = list(map(int, raw_input().split()))
count = 0
for a in range(len(l)):
count = count + l[a+1:].count(l[a])
print(count)
Aber leider ist der Code eine Menge Zeit. Haben Sie Vorschläge, wie ich den Zeitaufwand reduzieren könnte? Ich meine, wie reduziere ich die Zeit in der for
Schleife verbraucht. Ich finde, dass die Methode list.count
viel Zeit braucht, also haben Sie irgendwelche Ideen, durch die ich es ersetzen könnte.
Ja, 'list.coun t() 'muss über die * ganze Liste iterieren, um die Anzahl der Vorkommen zu zählen. –
Versuchen Sie, an andere Möglichkeiten zu denken, die Liste nur * einmal * zu durchlaufen. Vielleicht können Sie verfolgen, ob Sie bereits eine Nummer gesehen haben? –
@MartijnPieters Ich hatte die Liste früher irrtümlich "sortiert" und als ich davon erfuhr, wurde mir klar, dass sie keine Auswirkung auf die Antworten hatte, die sie berechnen konnte. –