Dieses Dokument bietet einen umfassenden Überblick über LeetCode-Solutions-in-Good-Style, eine Ressource, die einsteigerfreundliche Tutorials und Videolösungen für Algorithmus- und Datenstrukturprobleme bietet. Es bietet einen strukturierten Ansatz mit klarem Code, detaillierten Erklärungen und konzentriert sich auf die Erstellung ein ausgeprägtes Verständnis grundlegender Konzepte statt konkurrierender Codierung.
LeetCode-Lösungen im guten Stil
Erläuterung: Wie die meisten meiner Klassenkameraden lerne ich und fasse gleichzeitig zusammen. Ich werde versuchen, mehr zu teilen und Ihnen nützliches Wissen zu vermitteln. Vielen Dank für Ihre anhaltende Unterstützung.
Hallo zusammen, dies ist ein Einsteiger-Tutorial zum Thema „Algorithmen und Datenstrukturen“. Es eignet sich für Studierende mit keinerlei Vorkenntnissen in Algorithmen und Studierende, die den Beruf gewechselt haben. Es ist nicht für die Vorbereitung auf Algorithmenwettbewerbe geeignet. Der Punkt, den ich vermitteln möchte, ist: Schreiben Sie Code mit klarer Logik, daher muss der Code, den ich schreibe, streng durchdacht sein. Das Format ist sehr standardisiert, ohne persönlichen Stil, und ich werde keine Leerzeilen oder Kommentare schreiben, um es zu reduzieren die Anzahl der Codezeilen. Hier ist es:
Sie können mich Weiwei nennen. Ich werde mein Bestes geben, um die mir bekannten Fragen im Rahmen meiner Möglichkeiten und meiner Zeit zu beantworten. Wenn Sie Fragen haben, die nicht rechtzeitig beantwortet werden können, liegt das möglicherweise daran, dass ich die Benachrichtigung auf der Website nicht gesehen habe. Sie können mir eine E-Mail an [email protected] senden.
Videolösung, die ich aufgenommen habe
Ich habe im September 2019 mit der Aufzeichnung von Videolösungen begonnen. Zu Beginn habe ich den Stoff, über den ich sprechen wollte, mehrmals aufgenommen. Schreiben Sie nun wörtliche Entwürfe, wenn Sie Wissenspunkte erläutern. Es wurden viele Videos gesammelt, was eigentlich ein kleiner systematischer Kurs ist. Ich hoffe, dass er für alle hilfreich sein kann.
0. Wie kann ein unerfahrener Algorithmusbenutzer LeetCode verwenden? 【Nützliche Informationen teilen】
1. Zeitkomplexität und Raumkomplexität
In diesem Video wurde erwähnt, dass Zeitkomplexität ein asymptotisches Konzept ist und aus einer dynamischen Perspektive verstanden werden muss. Und die strenge Definition (Grenzform) der Zeitkomplexität wird erklärt, damit jeder die Berechnungsregeln der Zeitkomplexität verstehen kann. Es wurde auch darauf hingewiesen, dass die Zeitkomplexität nicht die Laufzeit des Programms ist. Es sollte mehr Wert auf die Optimierung der „Zeitkomplexität“ gelegt werden.
2. Binäre Suche
In diesem Video wird vorgestellt, wie man einen binären Suchalgorithmus schreibt. Obwohl es viele Details zur binären Suche gibt, wird das Problem der binären Suche nicht auftreten, solange wir die richtigen Ideen zur Problemlösung beherrschen, mehr üben, sorgfältig nachdenken und mehr Zusammenfassungen erstellen mehr schwierig sein.
Das folgende Video erklärt einige Beispielfragen der binären Suche. Wir konzentrieren uns auf die Analyse der Bedeutung der Frage und darauf, wie die in der Frage angegebenen Bedingungen verwendet werden können, um den Suchbereich schrittweise einzugrenzen.
Durch die Analyse von Frage 4 von „Likou“ (Bestimmen des Medians zweier Arrays positiver Ordnung) haben wir Ihnen diese Technik vorgestellt: Wenn die Eigenschaften des gesuchten Zielelements komplexer sind, können Sie diese Eigenschaft umkehren. , und schreiben Sie dann logische Anweisungen, die den Problembereich leicht reduzieren können.
3. Probleme im Zusammenhang mit der Sortierung
„Merge Sort“ und „Quick Sort“ sind sehr wichtige Sortieralgorithmen. Ein tiefes Verständnis dieser Algorithmen ist sehr hilfreich, um den Funktionsmechanismus „rekursiver“ Funktionen zu verstehen. Gleichzeitig sind sie auch typische Anwendungen des „Divide and Conquer“-Denkens ". „Reverse Order Pair“ und „Dutch Flag Problem (Color Classification)“ sind ebenfalls sehr klassische Algorithmusprobleme.
Die Berechnung von „Paaren in umgekehrter Reihenfolge“ basiert vollständig auf der Idee der „Merge-Sortierung“.
Bei der Erklärung des Problems der „Farbklassifizierung“ haben wir allen „Schleifeninvarianten“ vorgestellt. Beim Schreiben von Code sollten wir uns immer an die Semantik der verwendeten Variablen „vor der Programmausführung“ und „während der Ausführung“ halten bleibt nach „Ausführungsende“ unverändert. Die Einhaltung unserer eigenen Definition von „Schleifeninvarianten“ ist für uns eine wichtige Möglichkeit, korrekten Code zu schreiben.
„Die erste fehlende positive Zahl“ ist ein klassisches Algorithmusproblem. Die verwendete Idee ist „In-Place-Hashing“, das als spezielle Anwendung des „Bucket Sort“-Algorithmus verstanden werden kann: eine Karotte, eine Grube und ein Eimer. Speichern Sie ein Element. Ich möchte betonen, dass die Tatsache, dass Sie dies tun können, eng mit dem Wert der Elemente des Eingabearrays zusammenhängt.
4. Schiebefenster
Das „Schiebefenster“-Problem ist ein typisches Problem, das durch die Anwendung von „Schleifeninvarianten“ gelöst wird und unsere Codierungs- und Debugging-Fähigkeiten auf die Probe stellt.
5. Stack-bezogene Probleme
Die mithilfe von „Stacks“ gelösten Probleme erfordern die Verwendung konkreter Beispiele, um herauszufinden, dass ihre Lösung mit der „Last in, first out“-Regel übereinstimmt:
Die Beherrschung der folgenden beiden Fragen ist untrennbar mit dem Studium spezifischer Beispiele und der anschließenden Zusammenfassung allgemeiner Regeln verbunden.
Eine der am weitesten verbreiteten Anwendungen von „Stack“ ist die Datenstrukturunterstützung für „Rekursion“, „Tiefendurchquerung“ und „Teile-und-Herrsche-Algorithmus“.
6. Kombinierte Suche
Die Datenstruktur „Union Search Set“ wird derzeit selten in Interviews verwendet. Wenn Sie sich auf ein Algorithmus-Interview vorbereiten, können Sie es überspringen.
7. Baum
Viele Baumprobleme können mit „Tiefe-zuerst-Traversal“ oder „Breite-zuerst-Traversal“ gelöst werden.
8. Backtracking-Algorithmus
Der „Backtracking-Algorithmus“ ist eigentlich eine Tiefendurchquerung der in der Frage enthaltenen „Baumstruktur“. Bei dieser Art von Aufgabe ist es wichtig, ein Baumstrukturdiagramm auf Notizpapier zu zeichnen.
9. Dynamische Programmierung
10. Breitenorientierte Durchquerung und topologische Sortierung
11. Hash-Tabelle
12. Bitoperationen im Zusammenhang
Meine persönlichen Website- und Algorithmus-Studiennotizen
WeChat-Gruppe und QQ-Gruppe
Wenn Sie Freunde brauchen, die gemeinsam an den Fragen arbeiten, können Sie der WeChat-Gruppe und der QQ-Gruppe beitreten.
MyLeetBook
Hier ist eine Aktion für mich selbst. Ich habe kürzlich mein eigenes LeetBook zum Thema „LeetBook“ herausgebracht: Learning Algorithms from Zero (früher bekannt als „Learning Algorithms and Data Structures with „LeetCoin“)“, das sich hauptsächlich an Freunde richtet, die ihre Karriere geändert haben Nullgrundlage Erklären Sie das Grundwissen über Algorithmen und Datenstrukturen.
veranschaulichen:
Die ersten beiden Kapitel von LeetBook (Time Complexity, Binary Search) können kostenlos gelesen werden. Der Preis für Nichtmitglieder beträgt 99 Yuan, für Mitglieder beträgt der Preis 69 Yuan das Gleiche wie LeetBook. Nur der zusätzliche Teil, nicht weniger;
Die Kurstitel, Beispiele, Übungen und das unterstützende Code-Repository (das Repository, das Sie gerade sehen) sind vollständig öffentlich. Wenn Sie die in LeetBook entworfenen Inhalte (einschließlich Übungen) bereits beherrschen, wird der Kauf nicht empfohlen.
Der Energieaufwand ist derselbe wie beim normalen Schreiben der Lösung, mit der Ausnahme, dass LeetBook bei der Erstellung von Diagrammen detaillierter vorgeht. Der kostenpflichtige Inhalt ist: Durch die Zeit und Energie, die in die Erstellung von Tutorials investiert wird, und durch die Beteiligung von „Likou“-Mitarbeitern und Experten an der Produktion und Überprüfung wird das Leseerlebnis besser. Es ist nicht ausgeschlossen, dass ich normalerweise mehr Wissenspunkte zur Problemlösung schreibe als LeetBook;
Fortgeschrittene und fortgeschrittene Benutzer kaufen bitte mit Vorsicht.
Sie können mich zu den Kursinhalten auf der Website „Likou“ oder meinen anderen sozialen Konten konsultieren oder ein Problem an dieses Lager senden. Unabhängig davon, ob ich den Kurs kaufe oder nicht, werde ich mein Bestes geben, um die mir bekannten Fragen zu beantworten (sofern es die Zeit erlaubt und im Rahmen meiner Möglichkeiten). Ich danke Ihnen allen für Ihre anhaltende Unterstützung. Jeder ist herzlich willkommen, mit mir zu kommunizieren, wenn er Vorschläge und Meinungen hat;
Das Wissen, das ich erkläre, ist in den Büchern enthalten, die ich jedem empfohlen habe, in den Blogs, Problemlösungen und Notizen, die ich geschrieben habe. Die veröffentlichten Problemlösungen, Blogs und Notizen werden immer geteilt, und solange ich Zeit und Energie habe, werde ich sie immer weitergeben. Ich werde dies auch weiterhin tun.
Ich bin „Likou“ sehr dankbar, dass sie mir die Möglichkeit gegeben hat, Kurse zu belegen und mir dabei geholfen hat, einen kleinen Wunsch zu erfüllen.
„Lekou“-Klassifizierungs- und Problemlösungsverzeichnis (geordnet nach LeetBook-Kapiteln, Kapitel 16 und höher sind Kapitel, die derzeit nicht in LeetBook enthalten sind)
Hinweis: Die Fragenkategorien entsprechen meinen LeetBook-Kapiteln.
Kapitel 1 Zeitkomplexität
In diesem Teil wird das Konzept der Zeitkomplexität vorgestellt. Sie können sich [Video-Erklärung] ansehen, das völlig kostenlos ist. Für dieses Kapitel gibt es keine Übungen.
Kapitel 2 Binäre Suche
Fragetyp 1: Finden Sie Indizes in zwei Punkten
veranschaulichen:
üben:
Fragetyp 2: Bestimmen Sie eine ganze Zahl mit einem Bereich um zwei Punkte (Antwort mit zwei Punkten)
Algorithmisches Denken: Reduzieren und Erobern. Wenn die Frage erfordert, dass wir eine Ganzzahl finden und diese Ganzzahl einen bestimmten Bereich hat, können wir den Bereich durch binäre Suche schrittweise eingrenzen und ihn schließlich einer Zahl nähern.
Fragetyp 3: Komplexe Diskriminanzfunktion (Maximierungsproblem)
Hinweis: Bei dieser Art von Frage handelt es sich im Wesentlichen um „Fragetyp 2“ (Zwei-Punkte-Antwort), sie kann sich jedoch beim ersten Lernen etwas verwirrend anfühlen. Fragen dieser Art werden auf die gleiche Weise gestellt. Die Schlüsselwörter lauten „kontinuierlich“ und „positive ganze Zahl“. Bitte achten Sie darauf, solche Schlüsselinformationen in der Frage zu erfassen.
Kapitel 3 Grundlegende Sortieralgorithmen
Dieser Teil enthält vier grundlegende Sortieralgorithmen: Auswahlsortierung, Einfügungssortierung, Hügelsortierung und Blasensortierung.
„Likou“-Frage 912: Lösung für sortierte Arrays: Hier werden einige wichtige Punkte und Lernmaterialien für Sortierprobleme zusammengefasst. Sie können mit dem Erlernen von Algorithmen aus Sortierproblemen beginnen.
Array-Probleme können als „Neulingsgebiet“ in Algorithmen verwendet werden, da diese Probleme nur durch die Beherrschung der Grundkenntnisse der Programmiersprachen gelöst werden können. Es ist leicht, Lösungen für die folgenden Probleme zu finden, auch wenn Sie keine relevanten Datenstruktur- und Algorithmuskenntnisse erworben haben.
Wissenspunkt: Schleifeninvarianten
Kapitel 4 Erweiterte Sortieralgorithmen (Wichtig)
Dieser Teil muss sich auf die Beherrschung von drei erweiterten Sortieralgorithmen konzentrieren: Zusammenführungssortierung, Schnellsortierung und Heapsortierung.
veranschaulichen:
Kapitel 5 Nicht vergleichende Sortierung (optional)
Dieser Teil enthält drei Arten der nicht vergleichenden Sortierung: Zählsortierung, Basissortierung und Bucket-Sortierung. Um diese Probleme zu lösen, muss man das Konzept des In-Place-Hashing verstehen.
Kapitel 6 Schiebefenster und Doppelzeiger
1. Schiebefenster
Referenzschreibmethode für Schiebefenster (keine Vorlage, bitte kopieren Sie sie nicht so, wie sie ist, sie dient nur als Referenz, es ist wichtiger, die Idee des Algorithmusdesigns zu verstehen):
Freundliche Erinnerung: Die Fragen 3 und 76 sind grundlegende Fragen, die Sie beantworten können müssen. Sobald Sie die oben genannten Fragen gründlich verstanden haben, können Sie die folgenden Fragen einfacher beantworten.
Schlüsselfragen:
veranschaulichen:
üben:
veranschaulichen:
Frage 209: Die wichtigsten Informationen in der Frage: Alle Elemente im Array sind positive ganze Zahlen. Es gibt insgesamt drei Methoden:
Methode 1: Gewaltsame Lösung
Methode 2: Schiebefenster (analysieren Sie die Gründe, warum Schiebefenster verwendet werden können)
Methode 3: Konstruieren Sie das Präfix und das Array und verwenden Sie dann die binäre Suche
Frage 438: Wie Frage 76;
Frage 567: Wie Frage 76, außer dass die Sammlung qualifizierter Sätze unterschiedlich ist.
2. Doppelte Zeiger
Das „Doppelzeiger“-Problem ist eigentlich eine Optimierung des naiven Algorithmus. Viele Lösungen, die nicht der Bedeutung des Problems entsprechen, werden auf einmal aussortiert. Dasselbe gilt für die „Schiebefenster“-Technik. Noch wichtiger ist es zu analysieren, warum Doppelzeiger verwendet werden können.
Der zum Finden von Indizes verwendete binäre Suchalgorithmus kann auch als Doppelzeigerlösung betrachtet werden.
Kapitel 7 Verlinkte Liste
Eine sehr praktische Technik zur Lösung verknüpfter Listenprobleme ist das „Zeichnen“. Gleiches gilt für die Analyse und Erklärung anderer algorithmischer Probleme (Erklärung gegenüber dem Interviewer).
Sie können Testfunktionen für verknüpfte Listen schreiben, um das Debuggen zu erleichtern. Die empfohlenen Implementierungsmethoden sind: ① Erstellen Sie eine einfach verknüpfte Liste über ein Array. ② Drucken Sie den aktuellen Knoten und die nachfolgenden Knoten basierend auf dem aktuellen Knoten. Diese beiden Methoden können uns sehr praktisch beim Debuggen von Programmen helfen, die sich auf verknüpfte Listen beziehen.
Fragetyp 1: Grundlegendes Problem mit dem Zeiger einer verknüpften Liste
Hinweis: Einige Probleme erfordern die Verwendung von „virtuellen Kopfknoten“, um eine komplexe Klassifizierungsdiskussionslogik für den ersten Knoten der verknüpften Liste zu vermeiden. Wir haben diese Idee in Arrays gesehen, die „Sentinels“ genannt werden.
Verwenden Sie rekursive Funktionen, um komplexe Vorgänge zum Ändern von Zeigervariablen zu vermeiden und die Lösung von Problemen zu vereinfachen.
veranschaulichen:
Fragetyp 2: Schnelle und langsame Zeigefähigkeiten
Um genau zu sein, könnte es besser sein, es „synchronisierter Zeiger“ zu nennen.
Bei Verwendung von zwei Zeigervariablen befinden sie sich beide am ersten Knoten der verknüpften Liste am Anfang. Die eine macht immer nur einen Schritt auf einmal, die andere macht immer nur zwei Schritte auf einmal, einen davor und einen dahinter gleichzeitig zurück. Auf diese Weise erreicht der langsame Zeiger die mittlere Position der verknüpften Liste, wenn der schnelle Zeiger mit dem Gehen fertig ist.
Das gemeinsame Merkmal zur Lösung dieser Probleme besteht darin, zwei Zeigervariablen zu verwenden, um sich synchron zu bewegen. Der schnelle und der langsame Zeiger bewegen sich in die gleiche Richtung und der „Unterschied“ zwischen ihren Schritten ist konstant. Basierend auf dieser Gewissheit können einige Probleme in der verknüpften Liste gelöst werden. Mit dieser Idee können auch die folgenden Probleme verknüpfter Listen gelöst werden:
veranschaulichen:
Fragetyp drei: Datenstruktur entwerfen
Kapitel 8 Stapel und Warteschlange
1. Stapeln
Fragetyp 1: Grundlegende Probleme, die mit dem Stack gelöst werden
Die folgenden Fragen sind sehr grundlegend und müssen gemeistert werden:
üben:
Fragetyp 2: Monotoner Stapel
Ein monotoner Stapel ist ein gewöhnlicher Stapel, der bei der Verwendung zufällig dem Prinzip „Last in, first out“ folgt und die Elemente im Stapel monoton sind. Die Probleme „Monotoner Stapel“ und „Monotone Warteschlange“ sind normalerweise etwas ganz Besonderes. Beherrschen Sie einfach die Beispiele und einige Übungen.
Erfahrung: Indizes werden im Allgemeinen in monotonen Stapeln gespeichert.
veranschaulichen:
üben:
2. Warteschlange
Fragetyp 1: Grundlegende Probleme, die mithilfe von Warteschlangen gelöst werden
Alle Probleme werden mithilfe von Warteschlangen zur Breitendurchquerung gelöst.
Fragetyp 2: Monotone Warteschlange
Eine monotone Warteschlange ist nur eine gewöhnliche Warteschlange. Dieses Problem tritt derzeit in der monotonen Warteschlange auf „Likou“ auf. Der Schlüssel besteht darin, klar zu analysieren, warum der entworfene Algorithmus die Warteschlange monoton macht. Darüber hinaus gibt es Beispiele für die Verwendung monotoner Warteschlangen zur Optimierung des „Knapsack-Problems“.
Erfahrung: Indizes werden im Allgemeinen in monotonen Warteschlangen gespeichert.
Kapitel 9 Prioritätswarteschlange
Hinweis: Es ist notwendig, die Implementierung von „Heap“ als „Prioritätswarteschlange“ zu verstehen. Dies hilft, die Codierungsdetails von „remove()“ und „replace()“ zu verstehen, damit Sie den Heap effektiver verwenden können.
Anwendung: Wählen Sie dynamisch das Element mit der höchsten Priorität in der aktuellen Warteschlange aus und konzentrieren Sie sich dabei auf das Verständnis der Bedeutung von „dynamisch“.
Kapitel 10: Kombinierte Suche
Und schauen Sie sich die [Video-Erklärung] der Wissenspunkte in der Videolösung zu Frage 990 an. Zu den grundlegenden und häufig gestellten Fragen gehören:
Optionale Fragen:
Kapitel 11 Bäume (Binärbäume und binäre Suchbäume)
Kapitel 12 Backtracking-Algorithmus
Fragetyp 1: Grundlegendes Backtracking-Problem
Durch diese Fragen können Sie die Idee des Backtracking-Algorithmus verstehen. Die Wissenspunkte des Backtracking-Algorithmus werden in der Videolösung und der Textlösung von Frage 46 von „Likou“ erläutert.
Beim Backtracking wird die Tiefendurchquerung verwendet, um alle Lösungen des Baums (Diagramms) zu durchsuchen. Die Tiefendurchquerung hat eine offensichtliche rekursive Struktur.
Tipps zur Lösung der folgenden Probleme: ① Zeichnen, zeichnen, zeichnen; ② Tiefendurchquerung und Rekursion verstehen; ③ Mehr debuggen, mehr debuggen.
Fragetyp 2: Backtracking-Problem bei Strings
Wichtige Punkte, die es zu verstehen gilt: Da die Zeichenfolge jedes Mal neue Zeichen generiert, besteht keine Notwendigkeit, den Status zurückzusetzen.
Fragetyp drei: Flood Fill
Fragetyp 4: Einige Spielfragen
veranschaulichen:
Kapitel 13 Dynamische Programmierung (Teil 1)
Zwei wichtige Ideen der dynamischen Programmierung:
Zwei Denkrichtungen in der dynamischen Programmierung:
Um das Problem mithilfe dynamischer Programmierung zu lösen, müssen drei Bedingungen erfüllt sein:
Zwei wichtige Konzepte der dynamischen Programmierung:
Referenz zur Fragenklassifizierung:
Hinweis: Die unten aufgeführten typischen Fragen werden hinzugefügt (2. Dezember 2020).
1. Erste Schritte
Verstehen Sie die beiden dynamischen Programmiermethoden „Top-Down“-Speicherrekursion und „Bottom-Up“-Rekursion.
2. Wiederholte Teilprobleme
Dieser Teil erfordert die Verwendung des „Schrittzählmultiplikationsprinzips“ und des „kategorialen Zähladditionsprinzips“.
Frage 70: Dies ist die gleiche Frage wie bei Fibonacci-Zahlen. Bei Zählproblemen werden das Klassifikationszählprinzip und das Schrittzählprinzip verwendet.
3. Optimaler Unterbau
veranschaulichen:
Frage 377: Beachten Sie, dass das Screening keine Frage des Rucksacks ist.
4. Keine Nachwirkungen
üben:
Im Folgenden sind einige klassische Probleme der „dynamischen Programmierung“ aufgeführt. Da diese Themen so wichtig sind, werden sie in einer separaten Kategorie aufgeführt.
5. Maximale Teilsegmentsumme
üben:
6. Längste ansteigende Teilfolge
Hinweis: Frage 300 ist ein sehr klassisches Problem der dynamischen Programmierung. Die Lösung von $O(N log N)$ definiert den Zustand entsprechend den Merkmalen des Problems selbst und beweist, dass das Zustandsarray ein geordnetes Array ist, was die Zeitkomplexität reduziert.
üben:
7. Der längste gemeinsame Teilstring
8. Intervall-DP und partitioniertes DP
Intervall DP:
Partitionierter DP:
9. Baum-DP
Kapitel 14 Dynamische Programmierung (Teil 2)
1. Rucksackproblem
Neun Vorträge zum Thema Rucksäcke: https://github.com/tianyicui/pack
(„Game Type DP“, „State Compression DP“, „Digital DP“ usw. werden hinzugefügt.)
Andere Fragen
Kapitel 15 Greedy-Algorithmus
Kapitel 17 Hash-Tabellen
Kapitel 18 Präfixsummen und Hash-Tabellen
Kapitel 19 Breitenorientierte Durchquerung
Einige Probleme mit der Breitendurchquerung von Bäumen und einige Probleme in LeetBook.
Kapitel 20 Graphentheorie-Algorithmus (Minimum Spanning Tree)
Kapitel 21 Graphentheorie-Algorithmus (Single Source Shortest Path)
Kapitel 22 Divide-and-Conquer-Algorithmus
Die Idee von „Teile und herrsche“ (Teile und herrsche) teilt ein größeres Problem in mehrere kleinere Teilprobleme desselben Typs auf und löst diese Teilprobleme dann rekursiv Das ursprüngliche Problem ist erhalten.
Der Divide-and-Conquer-Algorithmus kann parallel ausgeführt werden, aber im Bereich der Basisalgorithmen wird der Divide-and-Conquer-Algorithmus in einer Tiefendurchquerungsmethode ausgeführt.
Typische Algorithmen, die die Divide-and-Conquer-Idee anwenden: Zusammenführungssortierung, schnelle Sortierung.
Typische Probleme des Teilen-und-herrschen-Denkens: „Frage 51 des Schwertes zeigt auf das Angebot“: „Frage 51 des Schwertes zeigt auf das Angebot“ 51. Paare in umgekehrter Reihenfolge in einem Array (Video-Erklärung).
Weitere typische Fragen (werden hinzugefügt)
Es wird weiterhin aktualisiert und Freunde sind herzlich willkommen, wertvolles Feedback zu geben!