Table des matières
Exemple Exemple
Input 2
Approche Naive
Exemple
Sortie
Complexité temporelle et spatiale
Méthode efficace
Conclusion
Maison développement back-end C++ Trouver le plus petit nombre formé en insérant les nombres donnés

Trouver le plus petit nombre formé en insérant les nombres donnés

Sep 08, 2023 pm 08:29 PM
数字 插入 le plus petit

Trouver le plus petit nombre formé en insérant les nombres donnés

Insérer un numéro dans un numéro donné signifie ajouter un nouveau numéro au numéro donné, soit avant, après ou au milieu du numéro. On nous a donné un nombre et un nombre et nous devons ajouter ce nombre au nombre de la manière la plus petite possible. Pour faciliter l'opération d'insertion, nous allons convertir le nombre en chaîne. De plus, le nombre donné peut également être négatif, nous devons donc tenir compte de ce cas.

Exemple Exemple

La traduction chinoise de

Input1

est :

Input 1

Given number: 124
Given digit: 3
Output: 1234 
Copier après la connexion

Explication − Nous avons quatre endroits où nous pouvons additionner le nombre donné et le résultat peut être 3124, 1324, 1234, 1243. Des quatre, l’avant-dernier est le plus petit.

La traduction chinoise de

Input2

est :

Input 2

Given number: -124
Given digit: 3
Output: -3124 
Copier après la connexion

Explication − Nous avons quatre endroits où nous pouvons ajouter le nombre donné et le résultat peut être -3124, -1324, -1234, -1243. Des quatre, le premier est le plus petit.

La traduction chinoise de

Approche Naive

est :

Approche Naive

Maintenant que nous avons vu l'exemple, regardons les étapes que nous allons effectuer pour résoudre le problème -

  • Tout d'abord, nous vérifierons si le nombre actuel est positif ou négatif.

  • Si le nombre actuel est négatif, nous le marquerons comme variable négative et rendrons le nombre actuel positif.

  • Après cela, nous convertirons le nombre actuel en chaîne et appellerons la fonction selon que le nombre actuel est positif ou négatif.

  • Dans ces fonctions, nous essaierons d'ajuster le nombre à chaque position et vérifierons si le nombre actuel est plus petit ou plus grand en fonction de nombres positifs ou négatifs.

  • Si le nombre actuel est positif, nous essaierons de trouver le plus petit nombre et de le renvoyer.

  • Sinon, on trouve le plus grand nombre et on le renvoie en multipliant par -1.

La traduction chinoise de

Exemple

est :

Exemple

#include <bits/stdc++.h>
using namespace std;
int findMin(string str, int d){
   string ans = str + to_string(d); // variable to store the answer     
   // traversing over the string 
   for(int i=0; i<= str.size(); i++){
      ans = min(ans, str.substr(0,i) + to_string(d) + str.substr(i));
   }
   return stoi(ans);
}
int findMax(string str, int d){
   string ans = str + to_string(d); // variable to store the answer     
   // traversing over the string 
   for(int i=0; i<= str.size(); i++){
      ans = max(ans, str.substr(0,i) + to_string(d) + str.substr(i));
   }
   return stoi(ans);
}
int minimumNumber(int n, int d){
   // checking for the negative number 
   int isNeg = 1;    
   if(n < 0){
      n *= -1;
      isNeg = -1;
   }    
   // converting the current number to string 
   string str = to_string(n);    
   if(isNeg == 1){
      return findMin(str,d);
   }
   else{
      return -1*findMax(str,d);
   }
}
int main(){
   int n = -124; // given number 
   int d = 3; // given digit     
   // calling to the function 
   n = minimumNumber(n, d);    
   cout<<"The minimum number after adding the new digit is "<<n<<endl;
   return 0;
}
Copier après la connexion

Sortie

The minimum number after adding the new digit is -3124
Copier après la connexion

Complexité temporelle et spatiale

La complexité temporelle du code ci-dessus est O(N*N), où N est le nombre de chiffres dans le nombre donné.

La complexité spatiale du code ci-dessus est O(N), où N est le nombre de chiffres dans le nombre donné.

Méthode efficace

Dans la méthode précédente, nous avons vérifié chaque nombre, trouvé le premier nombre supérieur au nombre donné, puis l'avons ajouté et renvoyé lui-même, ce qui est une méthode efficace. Pour les nombres négatifs, trouvez le plus petit nombre, ajoutez-le et renvoyez-le.

Voyons le code−

La traduction chinoise de

Exemple

est :

Exemple

#include <bits/stdc++.h>
using namespace std;
int findMin(string str, int d){
   // traversing over the string 
   for(int i=0; i<= str.size(); i++){
      if(str[i]-'0' > d){
         return stoi(str.substr(0,i) + to_string(d) + str.substr(i));
      }
   }
   return stoi(str + to_string(d));
}
int findMax(string str, int d){
   // traversing over the string 
   for(int i=0; i<= str.size(); i++){
      if(str[i]-'0' < d){
         return stoi(str.substr(0,i) + to_string(d) + str.substr(i));
      }
   }
   return stoi(str + to_string(d));
}
int minimumNumber(int n, int d){
   // checking for the negative number 
   int isNeg = 1;
   if(n < 0){
      n *= -1;
      isNeg = -1;
   }   
   // converting the current number to string 
   string str = to_string(n);    
   if(isNeg == 1){
      return findMin(str,d);
   }
   else{
      return -1*findMax(str,d);
   }
}
int main(){
   int n = 124; // given number 
   int d = 3; // given digit     
   // calling to the function 
   n = minimumNumber(n, d);    
   cout<<"The minimum number after adding the new digit is "<<n<<endl;
   return 0;
}
Copier après la connexion

Sortie

The minimum number after adding the new digit is 1234
Copier après la connexion

Complexité temporelle et spatiale

La complexité temporelle du code ci-dessus est O(N), où N est le nombre de chiffres du nombre donné.

La complexité spatiale du code ci-dessus est O(N), où N est le nombre de chiffres dans le nombre donné.

Conclusion

Dans ce tutoriel, nous avons implémenté une méthode pour insérer des nombres dans un nombre donné, c'est-à-dire ajouter un nouveau nombre donné avant, après ou entre les nombres. Nous avons vu deux méthodes, l'une avec une complexité temporelle de O(N*N) et l'autre avec une complexité temporelle de O(N). La complexité spatiale des deux méthodes est O(N).

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

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 l'opérateur MOINS dans SQL Utilisation de l'opérateur MOINS dans SQL Feb 18, 2024 pm 04:53 PM

Utilisation de MINUS dans SQL et exemples de code spécifiques En SQL, MINUS est un opérateur utilisé pour effectuer une opération de différence entre deux jeux de résultats. Il est utilisé pour supprimer les mêmes lignes du premier ensemble de résultats que dans le deuxième ensemble de résultats. Le jeu de résultats renvoyé par l'opérateur MINUS contiendra des lignes qui existent uniquement dans le premier jeu de résultats. Voici un exemple de code spécifique pour démontrer l'utilisation de MINUS : Supposons qu'il existe deux tables : "table1" et "table2", leurs structures sont les suivantes : Nom de la table : champ table1

iOS 17 : Comment changer le style d'horloge de l'iPhone en mode veille iOS 17 : Comment changer le style d'horloge de l'iPhone en mode veille Sep 10, 2023 pm 09:21 PM

La veille est un mode d'écran de verrouillage qui s'active lorsque l'iPhone est branché sur le chargeur et orienté en orientation horizontale (ou paysage). Il se compose de trois écrans différents, dont l'un affiche l'heure en plein écran. Lisez la suite pour savoir comment changer le style de votre horloge. Le troisième écran de StandBy affiche les heures et les dates dans différents thèmes que vous pouvez faire glisser verticalement. Certains thèmes affichent également des informations supplémentaires, comme la température ou la prochaine alarme. Si vous maintenez une horloge enfoncée, vous pouvez basculer entre différents thèmes, notamment numérique, analogique, mondial, solaire et flottant. Float affiche l'heure dans de grands nombres de bulles dans des couleurs personnalisables, Solar a une police plus standard avec un motif d'éruption solaire dans différentes couleurs et World affiche le monde en mettant en surbrillance

Programme C++ pour arrondir un nombre à n décimales Programme C++ pour arrondir un nombre à n décimales Sep 12, 2023 pm 05:13 PM

Représenter des nombres en sortie est une tâche intéressante et importante lors de l’écriture d’un programme dans n’importe quel langage. Pour les types entiers (données de type court, long ou moyen), il est facile de représenter des nombres en sortie. Pour les nombres à virgule flottante (de type flottant ou double), nous devons parfois les arrondir à un nombre spécifique de décimales. Par exemple, si nous voulons représenter 52,24568 sous forme de trois décimales, un prétraitement est nécessaire. Dans cet article, nous présenterons plusieurs techniques pour représenter les nombres à virgule flottante avec un nombre spécifique de décimales par arrondi. Parmi les différentes approches, il est important d'utiliser une chaîne de format de type C, d'utiliser l'argument de précision et d'utiliser la fonction round() de la bibliothèque mathématique. Regardons-les un par un. avec

Générer des nombres et des chaînes aléatoires en JavaScript Générer des nombres et des chaînes aléatoires en JavaScript Sep 02, 2023 am 08:57 AM

La possibilité de générer des nombres aléatoires ou des chaînes alphanumériques s'avère utile dans de nombreuses situations. Vous pouvez l'utiliser pour faire apparaître des ennemis ou de la nourriture à différents endroits du jeu. Vous pouvez également l'utiliser pour suggérer des mots de passe aléatoires aux utilisateurs ou créer des noms de fichiers pour enregistrer des fichiers. J'ai écrit un tutoriel sur la façon de générer des chaînes alphanumériques aléatoires en PHP. J'ai dit au début de cet article que peu d'événements sont véritablement aléatoires, et il en va de même pour la génération de nombres aléatoires ou de chaînes. Dans ce tutoriel, je vais vous montrer comment générer une chaîne alphanumérique pseudo-aléatoire en JavaScript. Générer des nombres aléatoires en JavaScript Commençons par générer des nombres aléatoires. La première méthode qui me vient à l’esprit est Math.random(), qui renvoie un float

Utilisez C++ pour écrire du code afin de trouver le Nième nombre non carré Utilisez C++ pour écrire du code afin de trouver le Nième nombre non carré Aug 30, 2023 pm 10:41 PM

Nous connaissons tous des nombres qui ne sont le carré d’aucun nombre, comme 2, 3, 5, 7, 8, etc. Il existe N nombres non carrés et il est impossible de connaître tous les nombres. Ainsi, dans cet article, nous expliquerons tout sur les nombres sans carrés ou non carrés et les moyens de trouver le Nième nombre non carré en C++. Nième nombre non carré Si un nombre est le carré d'un entier, alors ce nombre est appelé un carré parfait. Quelques exemples de nombres carrés parfaits sont -1iscarréde14iscarréde29iscarréde316iscarréde425iscarréde5 Si un nombre n'est le carré d'aucun entier, alors le nombre est appelé non carré. Par exemple, les 15 premiers nombres non carrés sont -2,3,5,6,

Comment insérer des graphiques et du texte de la carte de la Chine dans un document wps Comment insérer des graphiques et du texte de la carte de la Chine dans un document wps Mar 27, 2024 pm 02:01 PM

1. Ouvrez le logiciel wps et entrez dans l'interface d'opération de texte wps. 2. Recherchez l'option d'insertion dans cette interface. 3. Cliquez sur l'option Insérer et recherchez l'option Forme dans sa zone d'édition. 4. Cliquez sur l'option de forme et recherchez l'option recommandée dans son sous-menu. 5. Recherchez l'option Carte de Chine dans les options recommandées. 6. Cliquez sur l'option Carte de Chine et faites-la glisser avec le bouton gauche de la souris dans la zone de saisie d'édition pour obtenir la carte de Chine dont nous avons besoin.

Rechercher des nombres qui ne sont divisibles par aucun nombre dans une plage, à l'aide de C++ Rechercher des nombres qui ne sont divisibles par aucun nombre dans une plage, à l'aide de C++ Sep 13, 2023 pm 09:21 PM

Dans cet article, nous aborderons le problème de la recherche de nombres compris entre 1 et n (donnés) qui ne sont divisibles par aucun nombre compris entre 2 et 10. Comprenons cela avec quelques exemples - Entrée : num = 14 Sortie : 3 Explication : Il y a trois nombres, 1, 11 et 13, qui ne sont pas divisibles. Entrée : num = 21 Sortie : 5 Explication : Il y a cinq nombres 1, 11, 13, 17 et 19, qui ne sont pas divisibles. Méthode simple résolue si.

Représenter un nombre comme la somme du plus grand nombre possible de nombres premiers en C++ Représenter un nombre comme la somme du plus grand nombre possible de nombres premiers en C++ Aug 31, 2023 pm 04:29 PM

Discutez d'un problème, par exemple, étant donné un nombre N, nous devons diviser le nombre en nombres premiers maximum, nous pouvons soustraire un nombre premier de N, puis vérifier la différence entre les nombres premiers. Si la différence est un nombre premier, alors on peut exprimer N comme la somme de deux nombres premiers. Mais ici, nous devons

See all articles