Warum TypeScript die ideale Sprache für LeetCode ist?
\n\nWenn Sie bisher LeetCode-Aufgaben in JavaScript gelöst haben – wird es höchste Zeit, auf TypeScript umzusteigen. Warum? Weil strenge Typisierung eine ganze Klasse von Fehlern bereits vor dem Ausführen des Codes ausschließt. Sie können nicht versehentlich einen String dort übergeben, wo eine Zahl erwartet wird, und der Compiler zeigt Ihnen selbst an, welche Methoden für ein Objekt verfügbar sind. Das ist wie Autofahren mit Autopilot – schneller, sicherer und angenehmer.
\n\nLeetCode ist nicht nur eine Plattform zum Auswendiglernen von Algorithmen. Es ist ein Trainingsgelände, auf dem Sie Fähigkeiten verfeinern, die in der Produktion wirklich benötigt werden. Und TypeScript ist heute der De-facto-Standard für die Enterprise-Entwicklung. Unternehmen wie Google, Microsoft und Airbnb suchen Entwickler, die typisierten Code schreiben können. Indem Sie also Aufgaben auf LeetCode in TypeScript lösen, schlagen Sie zwei Fliegen mit einer Klappe: Sie bereiten sich auf das Vorstellungsgespräch vor und verbessern Ihre praktischen Fähigkeiten.
\n\nIn diesem Artikel werden wir besprechen, wo man anfängt, welche Typen und Datenstrukturen man lernen sollte, und wir gehen 3 Aufgaben unterschiedlicher Schwierigkeitsgrade durch – von leicht bis schwer. Los geht's!
\n\nWas Sie vor dem Start wissen sollten
\n\nBevor Sie in den Aufgabenpool eintauchen, stellen Sie sicher, dass Sie die Grundlagen beherrschen. TypeScript ist eine Erweiterung von JavaScript, daher müssen Sie zunächst sicher in JS sein: Closures, Promises, Array-Methoden, Arbeiten mit Objekten. Ohne dies wird TypeScript nur wie überflüssiger syntaktischer Zucker wirken.
\n\nGrundlegende Typen, die Sie auf LeetCode benötigen
\n- \n
number,string,boolean– die Basis, ohne die geht es nicht \n number[],string[]– Arrays, die in 90% der Aufgaben vorkommen \n Record<string, number>– Objekt als Wörterbuch (Hash Map) \n Map<K, V>– Alternative zum Objekt mit Beibehaltung der Reihenfolge \n Set<T>– für eindeutige Werte \n Tuple– Tupel, nützlich bei Aufgaben zur Rückgabe von Wertepaaren \n null | undefined– Behandlung von Randfällen \n
Datenstrukturen, die am häufigsten vorkommen
\n- \n
- Arrays – die Grundlage. Zweidimensionale Arrays, Sortierung, binäre Suche \n
- Hash-Tabellen – für schnelle Suche (Aufgabe Two Sum – ein Klassiker) \n
- Stack und Queue – für Aufgaben zu Klammern, BFS, DFS \n
- Verkettete Listen – reverse, merge, detect cycle \n
- Bäume – binäre, binäre Suchbäume, Traversierungen \n
- Graphen – normalerweise in Vorstellungsgesprächen auf Senior-Niveau \n
Versuchen Sie nicht, alles auf einmal zu lernen. Beginnen Sie mit Arrays und Hash-Tabellen – das deckt 70% der Aufgaben auf Easy- und Medium-Niveau ab.
\n\nSo richten Sie die Umgebung für TypeScript auf LeetCode ein
\n\nLeetCode unterstützt TypeScript von Haus aus. Wählen Sie beim Auswählen der Sprache einfach "TypeScript" im Dropdown-Menü. Wenn Sie jedoch Code lokal schreiben und testen möchten, hier das absolute Minimum:
\n\nnpm init -y\nnpm install typescript @types/node --save-dev\nnpx tsc --init\n\nErstellen Sie eine Datei solution.ts und führen Sie die Kompilierung mit dem Befehl npx tsc solution.ts && node solution.js aus. Das hilft Ihnen, sich an die strenge Typisierung zu gewöhnen und Fehler im Handumdrehen zu erkennen.
Analyse von 3 Aufgaben in TypeScript: von Easy bis Hard
\n\nKommen wir nun zur Praxis. Ich habe drei Aufgaben ausgewählt, die die Möglichkeiten von TypeScript hervorragend demonstrieren und häufig in Vorstellungsgesprächen vorkommen.
\n\n1. Two Sum (Easy) – ein Klassiker
\n\nAufgabe: Gegeben ist ein Array von Zahlen und ein Ziel. Finden Sie zwei Zahlen, deren Summe dem Ziel entspricht, und geben Sie deren Indizes zurück.
\n\nfunction twoSum(nums: number[], target: number): number[] {\n const map = new Map<number, number>();\n\n for (let i = 0; i < nums.length; i++) {\n const complement = target - nums[i];\n if (map.has(complement)) {\n return [map.