Ich wurde eine Frage gestellt, in der wir nach doppelten Sozialversicherungsnummern suchen, wie in ssn, die in beiden Array sind A und auch Array B. Mein unmittelbarer Gedanke war, über jedes Array zu iterieren, das die Anzahl jedes ssn in einer HashMap speichert. Dann sind natürlich alle Schlüssel, die mehr als 1 zählen, Duplikate. Mein Verständnis war, dass dies eine O (n + m) -Operation wäre, wobei m und n die Anzahl der Elemente in jedem Array sind. Mir wurde gesagt, dass dies in Bezug auf die Zeitkomplexität "sehr ineffizient" ist und dass die Zeitkomplexität tatsächlich O (n * m) ist. Wie ist das korrekt?Lösungen, die Schleife über zwei Eingabe-Arrays beinhalten: O (n + m) oder O (n * m)
0
A
Antwort
1
Zunächst ist O(n+m)
schneller als O(n*m)
. Zeitkomplexität von O(n*m)
wird der Fall sein, wenn Sie zwei Schleifen wie dieses:
for x in [1..n]
for y in [1..m]
So bedeutet der Begriff „sehr ineffizient“ überhaupt nicht gelten, es sei denn, es ist ein Knirschen von zusätzlichen Platz dass O(n+m)
entsteht. In diesem Fall können Sie klären, was der wichtigste Faktor ist Zeitkomplexität oder Raumkomplexität.
Verwandte Themen
- 1. Levenshtein Distanzalgorithmus besser als O (n * m)?
- 2. f (n) = log (n)^m ist O (n) für alle natürlichen Zahlen m?
- 3. Warum ist die Laufzeit dieses Algorithmus O (m + n)?
- 4. Anwendungsbeispiel für (Monad m, Monoid o) => m o?
- 5. Zeitkomplexität: O (logN) oder O (N)?
- 6. Algorithmus mit O (log N^3/M) Zeit Komplexität
- 7. Warum werden zwei O (N) -Methoden als O (N) betrachtet?
- 8. Zwischen O (nlog * n) und O (n)?
- 9. Rezidiv der Form lösen p [n, m] == p [n, m-2] + p [n-1, m-1] + p [n-2, m]
- 10. O (fib n) Komplexitätsalgorithmen?
- 11. ListBox.FindString Was ist die Worst-Case-Laufzeit? O (n), O (n log n), O (1) & rarr;
- 12. Ist die Quadratwurzel von n näher an O (log n) oder O (n)?
- 13. Big Oh - O (n) gegen O (n^2)
- 14. GreenDao. N: M Relation
- 15. Merge Sortiervariation n + m, verwirrt
- 16. Ausdruck k/m% n
- 17. Ändern Komplexität von O (n) bis O (log n)
- 18. Convert M * N-Array N * M Array PHP
- 19. Ist binäre Suche O (log n) oder O (n log n)?
- 20. DFA-Laufzeit ist nicht O (n), aber O (nm)
- 21. Optimierungs-Algorithmus von O (n^3) bis O (n^2)
- 22. Große O-Komplexität, wenn zwei Funktionen f (n) [O (1)] und g (n) [O (n)] miteinander multipliziert werden
- 23. Ist die Methode remove von Java's ArrayList Iterator O (n^2) oder O (n)? wenn ich über die Liste iteriere?
- 24. Was sind die Produktionen für die Sprache {0^m 1^m 2^n | n> = 0, m> n}
- 25. O (n) Sortieralgorithmus
- 26. Ist die Berechnungskomplexität dieser Funktion O (2^n) oder O (n)
- 27. Mergesort Komplexität O (nlogn) + O (n)?
- 28. SQL kommen über eine M: N Tabelle
- 29. Beispiel für O (n!)?
- 30. Datenübertragungsobjekte von Entitäten mit M: N oder 1: N Beziehungen
Ja, das ist definitiv O (n + m). –
"Mir wurde gesagt ..." Von wem erzählt? Warum spielt es eine Rolle? Es klingt ziemlich seltsam. Es ist im Durchschnitt linear. Im schlimmsten Fall ist es quadratisch. – kraskevich
@JoeC das war was ich dachte. Wie korrigieren Sie einen Interviewer, ohne wie ein vollständiges Werkzeug zu klingen? –