Table des matières
Algorithme
Implementation
Output
Maison développement back-end C++ En C++, traduisez ce qui suit en chinois : Recherchez l'élément le plus petit suivant

En C++, traduisez ce qui suit en chinois : Recherchez l'élément le plus petit suivant

Sep 20, 2023 pm 04:29 PM
c语言 关键词: 寻找 élément plus petit

En C++, traduisez ce qui suit en chinois : Recherchez lélément le plus petit suivant

L'élément plus petit suivant est l'élément du premier élément plus petit après lui. Regardons un exemple.

arr = [1, 2, 3, 5, 4] L'élément le plus petit suivant de

5 est 4, l'élément le plus petit suivant des éléments 1 et 2 est, 3 est -1 car il n'y a pas d'élément plus petit derrière ces éléments .

Algorithme

  • Initialiser le tableau avec des nombres aléatoires

  • Initialiser la pile.

  • Ajoutez le premier élément à la pile.

  • Parcourez les éléments d'un tableau.

    • Si la pile est vide, ajoutez l'élément actuel à la pile.

    • Lorsque l'élément actuel est plus petit que l'élément supérieur de la pile.

      • Imprimez l'élément supérieur et faites de l'élément le plus petit suivant l'élément actuel. p>

      • Élément supérieur pop-up.

    • Ajoutez des éléments à la pile.

  • Quand la pile n'est pas vide.

    • Imprimez l'élément du prochain élément plus petit sous la forme -1.

Implementation

Ci-dessous se trouve l'implémentation C++ de l'algorithme ci-dessus

#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;
}
Copier après la connexion

Output

Si vous exécutez le code ci-dessus, vous obtiendrez le résultat suivant.

1 -> 2
2 -> 3
3 -> 4
4 -> 5
5 -> -1
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Utilisation de la structure typedef en langage C Utilisation de la structure typedef en langage C May 09, 2024 am 10:15 AM

Utilisation de la structure typedef en langage C

La différence entre strcpy et strcat en langage C La différence entre strcpy et strcat en langage C May 08, 2024 pm 01:03 PM

La différence entre strcpy et strcat en langage C

Que signifie réel en langage C Que signifie réel en langage C May 09, 2024 pm 12:06 PM

Que signifie réel en langage C

Comment implémenter la fonction power en langage C Comment implémenter la fonction power en langage C May 09, 2024 pm 11:33 PM

Comment implémenter la fonction power en langage C

Que faire s'il y a une erreur dans scanf en langage C Que faire s'il y a une erreur dans scanf en langage C May 09, 2024 am 11:39 AM

Que faire s'il y a une erreur dans scanf en langage C

_utilisation complexe en langage C _utilisation complexe en langage C May 08, 2024 pm 01:27 PM

_utilisation complexe en langage C

Comment utiliser restrict en langage C Comment utiliser restrict en langage C May 08, 2024 pm 01:30 PM

Comment utiliser restrict en langage C

_Que signifie bool en langage C ? _Que signifie bool en langage C ? May 08, 2024 pm 01:33 PM

_Que signifie bool en langage C ?

See all articles