Einführung in Array-Algorithmus-Fragen und Zusammenfassung der Ideen

Ein Teil des Inhalts stammt von https://www.programmercarl.com/

0.Vorwort

In den meisten Programmiersprachen sind Arrays die grundlegendste Datenstruktur. Algorithmusfragen zu Arrays sind im Allgemeinen nicht schwierig. Wenn Sie zunächst ein tiefes Verständnis für die Struktur eines Arrays haben und sich dann an einige einzigartige Methoden erinnern, werden Sie die Fragen leichter lösen können.
Hinweis: Beginnen Sie nicht einfach mit dem Schreiben von Hand, nur weil die Frage einfach ist ! Wie das Sprichwort sagt, verschwendet das Schärfen des Messers keine Zeit mit dem Hacken von Brennholz. Lesen Sie zunächst die Fragen sorgfältig durch ! Zweitens: Klären Sie Ihre Gedanken ! Mach es zuletzt!

1. Array-Infrastruktur

Ein Array ist eine nummerierte Folge von Datenelementen mit fester Länge desselben eindeutigen Typs, deren zugrunde liegende Speicherung zusammenhängend ist.

Zuerst wird der Index des Arrays gelesen, beginnend bei 0 und endend bei (Länge-1).

Zweitens müssen wir, da die Speicherung von Arrays kontinuierlich ist, für Arrays, wenn wir ein Element löschen oder ein Element hinzufügen möchten, andere Elemente verschieben (im Vergleich zu verknüpften Listen ist das Lesen von Arrays bequemer. Das Löschen und Hinzufügen verknüpfter Listen ist bequemer ).

In der GO-Sprache sollten Sie darauf achten, den Unterschied zwischen Slices und Arrays zu verdeutlichen. Slicing ist ein Referenztyp und seine unterste Ebene speichert tatsächlich nur Adresse, Kapazität und Länge, während das Array tatsächlich viele Daten speichert. Eine detaillierte Analyse der Unterschiede finden Sie in den folgenden Artikeln:

Werden Funktionsparameter in der Go-Sprache als Wert übergeben?_

2. Allgemeine Ideen für Array-Fragen

2.1 Finden Sie das richtige Intervall

Bei Array-Fragen treten häufig seltsame Fehler auf, da die korrekte Beziehung zwischen den in der Frage angegebenen Intervallen nicht gefunden werden kann. Wenn beispielsweise beim binären Suchproblem klar ist, ob es sich um ein offenes oder ein geschlossenes Intervall handelt, ist die Problemlösung sehr einfach.

Empfohlene Themen:

https://leetcode.cn/problems/binary-search/

https://leetcode.cn/problems/N6YdxV/

2.2 Schiebefenster-Idee

Sie können viele Array-Probleme lösen, indem Sie ein Schiebefenster einrichten und die Größe des Fensters entsprechend den Problemanforderungen dynamisch ändern. Achten Sie bei Verwendung dieser Methode auf die Bedingungen zum Verlassen des Schiebefensters, die Verschiebungsbedingungen und das Erhalten des Endergebnisses.

https://leetcode.cn/problems/minimum-size-subarray-sum/

https://leetcode.cn/problems/longest-substring-without-repeating-characters/

2.3 Doppelzeiger-Idee

Das Festlegen eines schnellen und langsamen Zeigers und das entsprechende Einstellen der Inkremente des schnellen und langsamen Zeigers entsprechend den Anforderungen der Frage können viele Probleme mit Arrays und verknüpften Listen lösen.

https://leetcode.cn/problems/3sum/

2.4 Simulation

Die Ideen vieler Fragen sind sehr einfach, das heißt, Simulationen müssen gemäß den Ideen der Fragen durchgeführt werden. Was zu diesem Zeitpunkt getestet wird, ist unsere tatsächliche Fähigkeit zum Schreiben von Code.

Empfohlene Themen:

https://leetcode.cn/problems/add-binary/

https://leetcode.cn/problems/spiral-matrix/

https://leetcode.cn/problems/spiral-matrix-ii/

Guess you like

Origin blog.csdn.net/doreen211/article/details/125682142