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