Interviewfragen zu Algorithmen und Datenstrukturen (Junior) mit Antworten

75 Fragen fürs Vorstellungsgespräch zu Algorithmen und Datenstrukturen (Junior) mit richtigen Antworten, Erklärungen und Links zur Dokumentation.

Diesen Test machen
  1. 1.Was beschreibt die O-Notation?
  2. 2.Welche Zeitkomplexität hat diese Funktion?
  3. 3.Welche Zeitkomplexität haben zwei verschachtelte Schleifen über dasselbe Array der Länge n?
  4. 4.Warum schreibt man O(2n + 10) einfach als O(n)?
  5. 5.Welche Komplexität wächst mit steigendem n am langsamsten?
  6. 6.Welche Komplexität hat das Lesen von arr[i] aus einem JavaScript-Array?
  7. 7.Welche Array-Operation ist in JavaScript meist O(n)?
  8. 8.Welche Komplexität hat arr.includes(x) bei einem unsortierten Array?
  9. 9.Warum ist set.has(x) bei großen Sammlungen meist schneller als arr.includes(x)?
  10. 10.Welche Platzkomplexität hat diese Funktion?
  11. 11.Was bedeutet O(1) zusätzlicher Speicher für einen Algorithmus?
  12. 12.Was ist die Grundidee einer Hashtabelle?
  13. 13.Was ist eine Kollision in einer Hashtabelle?
  14. 14.Welche Suchzeit hat eine Hashtabelle im schlimmsten Fall?
  15. 15.Wann ist eine Map für ein Wörterbuch besser als ein einfaches Objekt?
  16. 16.Wie entfernt man am einfachsten Duplikate aus einem Array mit Primitiven?
  17. 17.Wie prüft man in O(n), ob ein Array Duplikate enthält?
  18. 18.Was garantiert die Datenstruktur Stack?
  19. 19.Welche Aufgabe passt natürlich zu einem Stack?
  20. 20.Was garantiert eine Queue?
  21. 21.Warum kann eine Queue aus push und shift bei großen Eingaben langsam werden?
  22. 22.Wo nutzt die JavaScript-Laufzeit selbst einen Stack?
  23. 23.Was ist eine einfach verkettete Liste?
  24. 24.Was kostet es, das k-te Element einer verketteten Liste zu holen?
  25. 25.Welche Operation ist in einer verketteten Liste O(1), am Anfang eines Arrays aber O(n)?
  26. 26.Was braucht jede korrekte rekursive Funktion?
  27. 27.Was passiert, wenn man diese Funktion aufruft?
  28. 28.Warum ist diese Fibonacci-Funktion für n = 40 langsam?
  29. 29.Was ist Memoisierung?
  30. 30.Was ist lineare Suche?
  31. 31.Was verlangt binäre Suche von den Daten?
  32. 32.Welche Zeitkomplexität hat binäre Suche?
  33. 33.Wie viele Vergleiche braucht binäre Suche ungefähr in einem sortierten Array mit 1.000.000 Elementen?
  34. 34.Was liefert dieser Code?
  35. 35.Was muss die Vergleichsfunktion (a, b) => ... liefern, damit sort a vor b setzt?
  36. 36.Was muss man sich bei arr.sort() merken?
  37. 37.Was garantiert ein stabiles Sortierverfahren?
  38. 38.Welche Zeitkomplexität hat ein gutes allgemeines vergleichsbasiertes Sortierverfahren typischerweise?
  39. 39.Wie funktioniert Bubble Sort?
  40. 40.Wann ist Insertion Sort eine gute Wahl?
  41. 41.Wie dreht man ein Array an Ort und Stelle mit O(1) zusätzlichem Speicher um?
  42. 42.Was ist die Technik der „zwei Zeiger“?
  43. 43.Wie prüft man in O(n) Zeit und O(1) zusätzlichem Speicher, ob ein String ein Palindrom ist?
  44. 44.Wie prüft man in O(n), ob zwei Strings Anagramme sind?
  45. 45.Welche Komplexität hat das Bauen eines Strings mit += in einer Schleife in modernen JavaScript-Engines?
  46. 46.Was ist ein Baum bei Datenstrukturen?
  47. 47.Was ist ein Blatt in einem Baum?
  48. 48.Was ist die Höhe eines Baums?
  49. 49.Welche Eigenschaft hat ein binärer Suchbaum (BST)?
  50. 50.Wie lange dauert die Suche nach einem Wert in einem balancierten BST mit n Knoten?
  51. 51.Was passiert, wenn man die Werte 1, 2, 3, 4, 5 der Reihe nach in einen einfachen (nicht balancierenden) BST einfügt?
  52. 52.Welche Struktur ist das DOM einer Webseite?
  53. 53.Was ist der Unterschied zwischen Tiefensuche (DFS) und Breitensuche (BFS)?
  54. 54.Welche Datenstruktur nutzt die Breitensuche (BFS)?
  55. 55.Was ist ein Graph?
  56. 56.Was ist der Unterschied zwischen einem gerichteten und einem ungerichteten Graphen?
  57. 57.Wie speichert man einen Graphen meist, wenn er viele Knoten, aber wenige Kanten hat?
  58. 58.Was beschreibt diese Adjazenzliste?
  59. 59.Welche Komplexität hat das Finden des Maximums in einem unsortierten Array?
  60. 60.Warum kann Math.max(...arr) bei einem sehr großen Array scheitern?
  61. 61.Wie zählt man in O(n), wie oft jedes Wort in einer Liste vorkommt?
  62. 62.Two Sum: finde in einem unsortierten Array zwei Zahlen, deren Summe target ergibt. Was ist der O(n)-Ansatz?
  63. 63.Was bedeutet „amortisiert O(1)“ für arr.push?
  64. 64.Welche Zeitkomplexität hat die Prüfung isPrime unten?
  65. 65.Welche Komplexität hat diese Schleife?
  66. 66.Welche Komplexität hat das Nachschlagen eines Schlüssels in einem einfachen JavaScript-Objekt, obj[key]?
  67. 67.Was ist ein Präfixsummen-Array?
  68. 68.Welche Komplexität hat arr.slice() (Kopieren des ganzen Arrays)?
  69. 69.Wie stellt man in JavaScript meist eine Matrix (ein 2D-Gitter) dar?
  70. 70.Warum sollte man für ein 3 × 3-Gitter new Array(3).fill([]) vermeiden?
  71. 71.Was ist ein Greedy-Algorithmus?
  72. 72.Was bedeutet „Brute Force“ bei einem Algorithmus?
  73. 73.Ein Algorithmus ist O(n²). Wie viel länger dauert er ungefähr, wenn die Eingabe von 1.000 auf 10.000 Elemente wächst?
  74. 74.Warum taugt ein Set aus Objekten nicht, um doppelte Objekte mit gleichem Inhalt zu entfernen?
  75. 75.Wie wirkt sich arr.splice(i, 1) in der Mitte eines Arrays auf die Performance aus?