Heim > Artikel > Backend-Entwicklung > Übersetzen Sie in C++ Folgendes ins Chinesische: Suchen Sie das nächst kleinere Element
Das nächstkleinere Element ist das Element des ersten kleineren Elements danach. Schauen wir uns ein Beispiel an.
arr = [1, 2, 3, 5, 4] Das nächstkleinere Element von
5 ist 4, das nächstkleinere Element der Elemente 1 und 2 ist 3 ist -1, da sich hinter diesen Elementen kein kleineres Element befindet .
Array mit Zufallszahlen initialisieren
Stapel initialisieren.
Fügen Sie das erste Element zum Stapel hinzu.
Iterieren Sie über die Elemente eines Arrays.
Wenn der Stapel leer ist, fügen Sie das aktuelle Element zum Stapel hinzu.
Wenn das aktuelle Element kleiner als das oberste Element des Stapels ist.
Drucken Sie das oberste Element und machen Sie das nächst kleinere Element zum aktuellen Element. p>
Popup-Oberelement.
Elemente zum Stapel hinzufügen.
Wenn der Stapel nicht leer ist.
Drucken Sie das Element des nächstkleineren Elements als -1 aus.
Unten finden Sie die C++-Implementierung des obigen Algorithmus
#include <bits/stdc++.h> using namespace std; void nextSmallerElements(int arr[], int n) { stack<int> s; s.push(arr[0]); for (int i = 1; i < n; i++) { if (s.empty()) { s.push(arr[i]); continue; } while (!s.empty() && s.top() > arr[i]) { cout << s.top() << " -> " << arr[i] << endl; s.pop(); } s.push(arr[i]); } while (!s.empty()) { cout << s.top() << " -> " << -1 << endl; s.pop(); } } int main() { int arr[] = { 5, 4, 3, 2, 1 }; int n = 5; nextSmallerElements(arr, n); return 0; }
Wenn Sie den obigen Code ausführen, erhalten Sie die folgendes Ergebnis.
1 -> 2 2 -> 3 3 -> 4 4 -> 5 5 -> -1
Das obige ist der detaillierte Inhalt vonÜbersetzen Sie in C++ Folgendes ins Chinesische: Suchen Sie das nächst kleinere Element. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!