Maison > Java > javaDidacticiel > Programme Java pour trouver les nombres manquants

Programme Java pour trouver les nombres manquants

WBOY
Libérer: 2023-08-27 17:13:06
avant
636 Les gens l'ont consulté

Programme Java pour trouver les nombres manquants

Les nombres manquants sont des nombres manquants dans un flux ou un tableau d'éléments consécutifs. Dans cette section, nous aborderons différentes manières de trouver les nombres manquants dans un flux d'éléments à l'aide du langage de programmation Java.

Exemple de nombres manquants dans un tableau

Les nombres manquants sont des nombres manquants dans une séquence de nombres consécutifs dans un tableau.

Considérez un tableau ;

arr=[1,2,3,4,5,6,8]

Dans le tableau « arr » ci-dessus, il manque 7, donc 7 est le nombre manquant

Exemple 2

Considérez un tableau ;

arr=[1,2,3,4,5,6,7,8,9,11]

Dans le tableau 'arr' ci-dessus, il manque 10, donc 10 est le nombre manquant

Nous allons maintenant discuter des différentes manières de trouver les nombres manquants dans un flux en Java.

Méthode 1 : utilisez les méthodes stream() et sum()

Dans cette méthode, nous utilisons la fonction stream() et convertissons le tableau en flux, puis utilisons la fonction sum() pour calculer la somme du flux et la stocker dans la variable 'actualsum', puis nous calculons la somme attendue en utilisant le formule n *(n+1)/2 , puis nous trouvons le nombre manquant en utilisant somme attendue - somme réelle.

Algorithme

  • Initialisez le tableau avec quelques valeurs.

  • Calculez la somme d'un tableau à l'aide des méthodes stream() et sum()

  • Calculez la longueur du tableau et trouvez la somme attendue de nombres consécutifs en utilisant la formule de la somme de n termes.

  • Soustrayez la valeur attendue et la somme, attribuez-la à une variable et imprimez-la.

Stream() - La méthode 'Stream()' est utilisée pour créer un flux d'éléments afin que nous puissions utiliser les méthodes filter(), map(), reduction(), etc. pour traiter les données p>

Arrays.stream(collection)
Copier après la connexion

sum() - Cette méthode est utilisée pour calculer la somme de tous les éléments de la collection.

stream.sum()
Copier après la connexion

Exemple

Dans cet exemple, nous utiliserons les méthodes stream() et sum() pour trouver les nombres manquants via Java.

import java.util.Arrays;
public class Main {
   public static void main(String[] args) {
      int[] array = {1, 2, 3, 5};
      int sum = Arrays.stream(array).sum(); 
      int n = array.length + 1; 
      int expectedvalue = (n * (n + 1)) / 2; 
      int lostnumber = expectedvalue - sum; 
      System.out.println("lost number " + lostnumber);
   }
}
Copier après la connexion

Sortie

lost number 4
Copier après la connexion

Méthode 2 : Utiliser XOR

Dans cette méthode, nous calculons le XOR de n valeurs et les stockons dans la variable expectedValue, puis calculons le XOR de actualValue et enfin nous effectuons le XOR entre ExpectedValue et actualValue pour obtenir le montant manquant.

Algorithme

  • Initialisez le tableau avec quelques valeurs.

  • Calculez la longueur du tableau et ajoutez 1 car je pense que le nombre réel dans le tableau devrait être array.length+1 et attribuez-le à la variable "n".

  • Définissez la valeur attendue sur 1 et calculez la valeur attendue à l'aide d'une boucle for en utilisant l'opérateur XOR jusqu'à n.

  • Définissez la valeur attendue sur array[0] et calculez la valeur réelle des éléments présents dans le tableau à l'aide de la boucle for à l'aide de l'opérateur XOR.

  • Calculez les nombres manquants à l'aide de l'opérateur XOR des valeurs attendues et réelles et imprimez

Opération XOR (^) - L'opération XOR effectue une opération au niveau du bit et renvoie 1 si les deux bits sont 1, sinon elle renvoie 0. Il est représenté par ^.

A ^ b // where 'a' and 'b' are integers.	
Copier après la connexion

Exemple

Dans cet exemple, nous utiliserons l'opérateur XOR et trouverons les nombres manquants à l'aide de Java.

public class Main {
   public static void main(String[] args) {
      int[] array = {1, 2, 3, 5}; // input array with missing number
      int n = array.length + 1; // total number of elements if no number was missing
      int expectedValue = 1; // expected XOR value if no number was missing
      for (int i = 2; i <= n; i++) {
         expectedValue ^= i; // XOR all elements from 1 to n to get expected value
      }
      int actualValue = array[0]; // start with first element of array
      for (int i = 1; i < array.length; i++) {
         actualValue ^= array[i]; // XOR all elements of array to get actual value
      }
      int lostNumber = expectedValue ^ actualValue; // XOR expected and actual values to get lost number
      System.out.println("The lost number is " + lostNumber);
   }
}
Copier après la connexion

Sortie

The lost number is 4
Copier après la connexion

Méthode 3 : Utiliser HashSet

Dans cet exemple, nous utiliserons la structure de données Hashset et les méthodes intégrées de Hashset pour trouver les nombres manquants à l'aide de Java.

Algorithme

  • Initialisez le tableau avec quelques valeurs.

  • Créez un jeu de hachage et utilisez une boucle for pour parcourir le tableau et ajouter les valeurs au jeu de hachage.

  • Utilisez une boucle for, parcourez i jusqu'à array.length+1 et utilisez la méthode contain() pour vérifier les valeurs manquantes dans la collection et imprimer les nombres manquants.

HashSet - Un jeu de hachage est une collection non ordonnée d'objets qui n'autorise pas les éléments en double.

HashSet<datatype> objName = new HashSet<datatype>();
Copier après la connexion

contains() - Cette méthode vérifie si une valeur existe dans la collection et renvoie une valeur booléenne.

setObjName.contains(value)
Copier après la connexion

Exemple

Dans cette méthode, nous stockons tous les éléments du tableau dans un HashSet, puis itérons de 1 aux valeurs array.length+1 et vérifions si toutes les valeurs sont présentes dans l'ensemble, si aucune valeur n'est présente alors ceci est Perdu la valeur et l'a imprimé.

import java.util.Arrays;
import java.util.HashSet;

public class Main {
   public static void main(String[] args) {
      int[] array = {1, 2, 3, 5};
      HashSet<Integer> set = new HashSet<Integer>();
      for (int i : array) {
         set.add(i); 
      }
      for (int i = 1; i <= array.length + 1; i++) {
         if (!set.contains(i)) { 
            System.out.println("lost number: " + i);
            break;
         }
      }
   }
}
Copier après la connexion

Sortie

lost number: 4
Copier après la connexion

Ainsi, dans cet article, nous avons appris différentes façons de retrouver un numéro perdu à l'aide du langage de programmation Java.

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!

Étiquettes associées:
source:tutorialspoint.com
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal