suchen
HeimJavajavaLernprogrammSo verwenden Sie einen monotonen Stapel in Java

1. Das nächste größere Element

Problembeschreibung

So verwenden Sie einen monotonen Stapel in Java

Detaillierte Erklärung der Ideen

Diese Frage verwendet eine gewalttätigere Lösung.

Wir initialisieren zunächst ein res-Array mit der gleichen Länge wie nums, um die Ergebnisse zu speichern. Wir durchlaufen die Werte in nums und suchen in nums2, bis wir nums2[j] == nums[i] finden. Wir beginnen dann mit j von nums2. Dann durchqueren wir, um ein Array zu finden, das größer als nums[i] ist, und geben es zurück

Problembeschreibung

So verwenden Sie einen monotonen Stapel in Java

Detaillierte Erläuterung der Idee

Auch diese Frage verwendet eine relativ heftige Methode. Dasselbe wie bei der vorherigen Frage.

Doppelte Schleife, offensichtlich ist diese Methode zeitlich komplexer. Auch hier wird eine Methode mit geringerer Zeitkomplexität bereitgestellt. So verwenden Sie einen monotonen Stapel in Java

Monotoner Stapel

Was wir pflegen, ist ein Lückenarray, das das Ergebnisarray ist. Erstellen Sie zunächst einen Stapel und stellen Sie fest, ob der Stapel leer ist. Wenn er nicht leer ist, legen Sie ihn fest. Vergleichen Sie das oberste Element des Stapels mit dem aktuellen Element. Wenn das aktuelle Element größer als das aktuelle Element ist, wird die Differenz in das entsprechende Ergebnisarray eingefügt und das oberste Element des Stapels entfernt Das Ergebnisarray wird auf den Stapel verschoben.

Hier ist ein Link zur Animation. Es ist eine gute Idee, den monotonen Stapel in der Animation zu lernen.

Code und Ergebnisse

3. Das nächste größere Element II

Problembeschreibung

So verwenden Sie einen monotonen Stapel in Java

Detaillierte Idee

Die Idee dieser Frage ist ein monotoner Stapel. Frage 1 wird gewaltsam gelöst. Diese Frage erfordert die Verwendung eines monotonen Stapels.

Das Prinzip ist das gleiche wie bei der zweiten Frage, achten Sie nur auf die Schleife. Gehen Sie direkt zum Code. Wenn Sie damit nicht vertraut sind, können Sie sich das Video der zweiten Frage ansehen und es sich dann ansehen.

So verwenden Sie einen monotonen Stapel in JavaCode und Ergebnisse

class Solution {
    public int[] nextGreaterElement(int[] nums1, int[] nums2) {
        int m = nums1.length, n = nums2.length;
        int[] res = new int[m];
        for (int i = 0; i < m; ++i) {
            int j = 0;
            while (j < n && nums2[j] != nums1[i]) {
                ++j;
            }
            int k = j + 1;
            while (k < n && nums2[k] < nums2[j]) {
                ++k;
            }
            res[i] = k < n ? nums2[k] : -1;
        }
        return res;
    }
}

Das obige ist der detaillierte Inhalt vonSo verwenden Sie einen monotonen Stapel in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Dieser Artikel ist reproduziert unter:亿速云. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SecLists

SecLists

SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

PHPStorm Mac-Version

PHPStorm Mac-Version

Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

Herunterladen der Mac-Version des Atom-Editors

Herunterladen der Mac-Version des Atom-Editors

Der beliebteste Open-Source-Editor

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Leistungsstarke integrierte PHP-Entwicklungsumgebung