KI-Coding-Interviewfragen: Beispiele und Übungen

Von Aaron Cao · Aktualisiert am

KI-Coding-Interviewfragen: Beispiele und Übungen
Bereite dich auf Fragen zu Arrays, Hashmaps, Bäumen, Graphen, dynamischer Programmierung und Debugging vor. Beim Üben kann KI Hinweise geben, Testfälle vorschlagen und Erklärungen beurteilen. Korrektheit und Komplexität musst du dennoch selbst prüfen. Nutze Live-Unterstützung nur, wenn die Interviewregeln sie erlauben.

Bereite dich auf Fragen zu Arrays, Hashmaps, Bäumen, Graphen, dynamischer Programmierung und Debugging vor. Beim Üben kann KI Hinweise geben, Testfälle vorschlagen und Erklärungen beurteilen. Korrektheit und Komplexität musst du dennoch selbst prüfen. Nutze Live-Unterstützung nur, wenn die Interviewregeln sie erlauben.

Welche Coding-Interviewfragen solltest du zuerst üben?

Selbst wenn du die Namen von Algorithmen kennst, kann unklar sein, wie du ein neues Problem angehen sollst. Diese Übungsfragen verknüpfen konkrete Eingaben mit Lösungsentscheidungen, Komplexitätsgrenzen und Randfällen, die du laut erklären solltest.

  • Two Sum: Gib zwei verschiedene Indizes zurück, deren Werte zusammen einen Zielwert ergeben. Bei [3, 3] und dem Zielwert 6 verwendet die Antwort beide Positionen. Durchlaufe die Werte mit einer Hashmap der zuvor gesehenen Werte, prüfe vor dem Speichern des aktuellen Werts auf das Komplement. So wird verhindert, dass ein Index mehrfach verwendet wird. Die erwartete Laufzeit beträgt O(n), bei O(n) zusätzlichem Speicher. Kläre, was zurückgegeben werden soll, wenn kein Paar existiert.
  • Finde den längsten Teilstring ohne wiederholte Zeichen. Bei 'abba' beträgt die Länge 2. Speichere die letzte Position jedes Zeichens und verwalte ein Fenster ohne Duplikate. Die linke Grenze darf sich nie rückwärts bewegen, wenn ein früheres Vorkommen außerhalb des aktuellen Fensters liegt. Die erwartete Laufzeit beträgt mit Hashmap-Zugriffen O(n). Kläre, was als Zeichen zählt.
  • Führe überlappende geschlossene Intervalle zusammen. Gib für [1, 3], [3, 5] und [8, 10] die Intervalle [1, 5] und [8, 10] zurück. Sortiere nach dem Anfang und erweitere dann das aktuelle Intervall oder beginne ein neues. Das Sortieren ergibt eine Laufzeit von O(n log n). Geschlossene Intervalle mit gemeinsamem Endpunkt überlappen sich; frage, ob dies der Problemdefinition entspricht.
  • Kehre eine azyklische einfach verkettete Liste um. Speichere den nächsten Knoten, bevor du den next-Zeiger des aktuellen Knotens änderst. Eine iterative Lösung benötigt O(n) Zeit und O(1) zusätzlichen Speicher. Verfolge eine leere Liste, einen Knoten und zwei Knoten. Erkläre nach jeder Iteration, welcher Teil der Liste bereits umgekehrt ist.
  • Gib die Werte eines binären Baums Ebene für Ebene zurück. Verwende eine Warteschlange und verarbeite die Anzahl der Knoten der aktuellen Ebene, bevor du die nächste Ebene beginnst. Die Laufzeit beträgt O(n); der zusätzliche Speicher der Warteschlange beträgt O(w), wobei w die maximale Breite einer Ebene ist, ohne die zurückgegebene Ausgabe. Teste einen leeren Baum und einen Baum mit nur einem Kind auf jeder Ebene.
  • Entscheide anhand von Voraussetzungen, ob alle Kurse abgeschlossen werden können. Modelliere die Voraussetzungen als gerichteten Graphen und verwende eine topologische Sortierung. Werden weniger als V Knoten verarbeitet, bleibt ein gerichteter Zyklus bestehen. Die Laufzeit beträgt O(V + E). Teste unverbundene Komponenten, einen isolierten Kurs und eine Selbstabhängigkeit.
  • Finde die kleinste Anzahl an Münzen, die für einen Betrag benötigt wird. Nimm unbegrenzt viele Münzen mit positiven ganzzahligen Nennwerten an. Bei [1, 3, 4] und dem Betrag 6 führt die Wahl der größten Münze zuerst zu drei Münzen; 3 + 3 benötigt zwei. Definiere als Zustand der dynamischen Programmierung die minimale Münzanzahl für jeden Betrag, beginnend mit null Münzen für den Betrag null. Bei einem Zielwert A und c Nennwerten benötigt der Standardansatz O(Ac) Zeit und O(A) Speicher. Behandle nicht erreichbare Beträge ausdrücklich.

Weitere nach Rolle und Thema geordnete Übungen findest du in der Bibliothek mit Interviewfragen.

Wie sieht eine gut erklärte Lösung aus?

Betrachte diese Aufgabe: Zähle nicht leere zusammenhängende Teilarrays, deren Summe einem Zielwert entspricht, wobei negative Werte erlaubt sind. Bei [1, -1, 1] und dem Zielwert 1 lautet die Antwort 3: entweder eines der aus einem Element bestehenden Teilarrays [1] oder das gesamte Array.

Beginne mit einer Basislösung: Wähle jede Startposition und erweitere die Endposition, während du eine laufende Summe führst. Das benötigt O(n²) Zeit und O(1) zusätzlichen Speicher. Ein gewöhnlicher Ansatz mit schrumpfendem Fenster ist hier unzuverlässig, weil negative Werte die Annahme verletzen, dass das Erweitern eines Fensters seine Summe erhöht.

Der schnellere Ansatz verwendet Präfixsummen und eine Häufigkeitsmap. Ist die aktuelle Präfixsumme s, kennzeichnet jedes frühere Präfix mit dem Wert s - Zielwert ein Teilarray mit der gewünschten Summe. Initialisiere die Map mit einem Vorkommen der Präfixsumme null, das für das leere Präfix vor dem Beginn des Arrays steht.

  • Verarbeitungsreihenfolge: Addiere den aktuellen Wert zur Präfixsumme, zähle passende frühere Präfixe und speichere dann das aktuelle Präfix. Würdest du es zuerst speichern, würde bei einem Zielwert von null fälschlicherweise ein leeres Teilarray gezählt.
  • Invariante: Vor dem Speichern des aktuellen Präfixes enthält die Map die Häufigkeiten aller Präfixe, die vor der aktuellen Position enden.
  • Komplexität: Jedes Element führt eine konstante Anzahl von Map-Operationen aus. Die erwartete Laufzeit beträgt O(n), wenn Hash-Operationen erwartungsgemäß konstante Zeit benötigen; der zusätzliche Speicher beträgt O(n).
  • Prüfungen: Ein leeres Array gibt 0 zurück. Gib für [0, 0] und den Zielwert 0 den Wert 3 zurück. Berücksichtige bei Ganzzahltypen fester Breite einen Überlauf sowohl bei der kumulierten Summe als auch bei der Anzahl der Ergebnisse.

Eine sinnvolle Anschlussfrage ist, ob die Aufgabe eine Anzahl oder die tatsächlichen Teilarrays verlangt. Die Rückgabe jedes passenden Teilarrays verursacht Ausgabekosten: Ein ausschließlich aus Nullen bestehendes Array hat n(n + 1)/2 passende nicht leere Teilarrays, wenn der Zielwert null ist.

Wie solltest du KI zum Üben von Coding-Fragen einsetzen?

Versuche es zunächst selbst, bevor du Hilfe anforderst, und bitte dann um den kleinsten Eingriff, mit dem du fortfahren kannst. Mit den folgenden Aufforderungen wird ein KI-Gespräch zu einer überprüfbaren Übung.

  • Bitte um einen Hinweis: Gib mir einen Hinweis dazu, welche Informationen gespeichert werden sollten. Gib noch keinen Code an und nenne noch nicht den vollständigen Algorithmus.
  • Hinterfrage die Argumentation: Hier ist meine Schleifeninvariante. Finde eine Eingabe, bei der meine Implementierung sie verletzt, oder erkläre, weshalb jede Aktualisierung sie bewahrt. Prüfe die Antwort selbst; die Zustimmung eines Modells ist kein Korrektheitsbeweis.
  • Prüfe die Komplexität: Ermittle den Arbeitsaufwand für Slicing, Sortieren, Containeroperationen und rekursive Aufrufe in dieser Implementierung. Ein bekannter Algorithmusname belegt nicht die Komplexität deines tatsächlichen Codes.
  • Erzeuge Tests: Schlage Fälle für leere Eingaben, Duplikate, Grenzwerte und unmögliche Ergebnisse vor. Erkläre jeweils das erwartete Ergebnis. Leite diese Ergebnisse unabhängig her, bevor du sie als Testorakel verwendest.
  • Ändere eine Einschränkung: Wie verändert sich die Lösung, wenn die Eingabe sortiert ist, nicht verändert werden darf oder als Datenstrom eintrifft? Erkläre den neuen Zielkonflikt, bevor du den Code umschreibst.

Stell dir eine Backend-Entwicklerin vor, die sich auf eine leitende Position bei einem Cloud-Anbieter vorbereitet. Nachdem sie ein Problem mit einem Voraussetzungengraphen gelöst hat, bittet sie einen KI-Übungspartner um einen unverbundenen Graphen, der einen Zyklus enthält. Anschließend verfolgt sie die Warteschlange und erklärt, weshalb die Anzahl der verarbeiteten Knoten den Zyklus sichtbar macht, ohne den Hinweis heranzuziehen.

Nachdem du eine vollständige Lösung gelesen hast, schließe sie und rekonstruiere Algorithmus, Invariante und Tests aus dem Gedächtnis. Code reproduzieren zu können ist weniger nützlich, als erklären zu können, warum er funktioniert, und ihn an eine geänderte Einschränkung anzupassen.

Um das Erklären deiner Argumentation im Gespräch zu üben, besuche die Seite für Probeinterviews.

Wie passt SubcueAI in ein erlaubtes Live-Coding-Interview?

SubcueAI bietet zwei Oberflächen für Live-Unterstützung. Die native Hauptanwendung für macOS und Windows erfasst Systemaudio und dein Mikrofon; die Unterstützung wird in einem schwebenden lokalen Overlay angezeigt. Sie funktioniert mit Desktop-Meeting-Clients, darunter Zoom und Microsoft Teams.

Die Browsererweiterung bietet Live-Unterstützung außerdem über ihr Side Panel in Chromium-Browsern, einschließlich Chrome und Edge. Sie erfasst nur das Audio des Meeting-Tabs und deckt damit Anrufe in Browser-Tabs wie Google Meet ab. Sie hört den Interviewer über diesen Tab, erfasst niemals dein Mikrofon und transkribiert den Bewerber nicht. Die Firefox-Version dient nur Probeinterviews.

Keine der beiden Oberflächen fügt dem Anruf einen Meeting-Bot hinzu oder schleust ein Content-Skript in die Meeting-Seite ein. Unterscheide bei Coding-Fragen zwischen gesprochenem und geschriebenem Kontext: Die reine Audioerfassung liefert keine Aufgabenstellung und keinen Code, die nur in einem Editor angezeigt werden. Prüfe jeden Vorschlag anhand der exakten Aufgabe, Einschränkungen und Implementierung.

Bestätige die Interviewregeln, bevor du Live-Unterstützung verwendest. SubcueAI ist nicht grundsätzlich unentdeckbar. Bildschirmfreigaben, Aufzeichnungen, beaufsichtigte Prüfungen und vom Unternehmen verwaltete Geräte fallen nicht unter Zusicherungen zur Unsichtbarkeit. Ein geteilter oder aufgezeichneter Bildschirm kann ein Overlay oder Side Panel sichtbar machen, und Geräte- oder Prüfaufsichtskontrollen können Aktivitäten überwachen.

Einrichtungshinweise zu den verfügbaren Oberflächen findest du im SubcueAI-Tutorial.

FAQ

Sind KI-Coding-Interviewfragen dasselbe wie Interviewfragen zum maschinellen Lernen?

Der Ausdruck kann sowohl Coding-Fragen meinen, die mit KI geübt werden, als auch Fragen für eine Position im KI-Engineering. Diese Seite behandelt allgemeine Übungen zur Softwareentwicklung. Bereite dich für eine Position in KI oder maschinellem Lernen zusätzlich auf relevante Aufgaben vor, etwa die Implementierung eines Vektorskalarprodukts, den Umgang mit fehlenden Daten oder die Erklärung einer Methode zur Modellbewertung. Orientiere die zusätzlichen Themen an der Stellenbeschreibung.

Was sollte ich klären, bevor ich eine Coding-Lösung schreibe?

Kläre den Vertrag für Ein- und Ausgabe, die Eingabegröße, ob Duplikate oder negative Werte erlaubt sind, ob du die Eingabe verändern darfst und was geschieht, wenn keine Lösung existiert. Gehe ein kleines Beispiel durch, beschreibe einen Basisansatz und erkläre dann, welche Einschränkung eine Optimierung rechtfertigt.

Sollte ich die KI beim Üben um eine vollständige Lösung bitten?

Probiere zuerst einen Hinweis. Wenn du eine vollständige Lösung benötigst, nutze sie, um die fehlende Idee zu erkennen, schließe sie dann und rekonstruiere die Antwort selbstständig. Erkläre die Invariante, leite die Komplexität her und löse eine Variante mit einer geänderten Einschränkung, bevor du das Thema als gelernt betrachtest.

Was soll ich tun, wenn eine KI-generierte Lösung einen Test nicht besteht?

Reduziere die Eingabe auf den kleinsten Fall, der weiterhin fehlschlägt, und ermittle das erwartete Ergebnis selbst. Verfolge die Zustandsänderungen, bis die Implementierung ihre beabsichtigte Invariante verletzt. Korrigiere die zugrunde liegende Annahme und führe anschließend den fehlgeschlagenen Fall sowie relevante Grenzfälle erneut aus. Akzeptiere eine überarbeitete Antwort nicht allein deshalb, weil das Modell behauptet, sie sei korrigiert.

Kann SubcueAI während eines Coding-Interviews beide Sprecher hören?

Die native App für macOS und Windows erfasst Systemaudio und dein Mikrofon und damit sowohl das Interviewer-Audio aus dem Meeting als auch deine gesprochenen Antworten. Die Erweiterung für Chrome und Edge erfasst nur das Audio des Meeting-Tabs; sie erfasst weder dein Mikrofon noch transkribiert sie dich. Die Firefox-Version unterstützt nur Probeinterviews.

Verwandte Fragen

← Mehr zu Interviewfragen nach Rolle & Thema