Heim  >  Artikel  >  Java  >  Java-Programm zum Auffinden fehlender Zahlen

Java-Programm zum Auffinden fehlender Zahlen

WBOY
WBOYnach vorne
2023-08-27 17:13:06604Durchsuche

Java-Programm zum Auffinden fehlender Zahlen

Fehlende Zahlen sind fehlende Zahlen in einem Stream oder Array aus aufeinanderfolgenden Elementen. In diesem Abschnitt besprechen wir verschiedene Möglichkeiten, fehlende Zahlen in einem Elementstrom mithilfe der Programmiersprache Java zu finden.

Beispiel für fehlende Zahlen im Array

Fehlende Zahlen sind Zahlen, die in einer Folge aufeinanderfolgender Zahlen in einem Array fehlen.

Betrachten Sie ein Array;

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

Im obigen Array „arr“ fehlt 7, also ist 7 die fehlende Zahl

Beispiel 2

Betrachten Sie ein Array;

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

Im Array „arr“ oben fehlt 10, also ist 10 die fehlende Zahl

Jetzt besprechen wir verschiedene Möglichkeiten, fehlende Zahlen in einem Stream in Java zu finden.

Methode 1: Verwenden Sie die Methoden stream() und sum()

Bei dieser Methode verwenden wir die Funktion „stream()“ und konvertieren das Array in „stream“. Anschließend verwenden wir die Funktion „sum()“, um die Summe des Streams zu berechnen und in der Variable „actualsum“ zu speichern. Anschließend berechnen wir die erwartete Summe mithilfe von Formel n *(n+1)/2 , dann finden wir die fehlende Zahl anhand der erwarteten Summe – der tatsächlichen Summe. Algorithmus

    Initialisieren Sie das Array mit einigen Werten.
  • Berechnen Sie die Summe eines Arrays mit den Methoden stream() und sum()
  • Berechnen Sie die Array-Länge und ermitteln Sie die erwartete Summe aufeinanderfolgender Zahlen mithilfe der Formel für die Summe von n Termen.
  • Subtrahieren Sie den erwarteten Wert und die Summe, weisen Sie sie einer Variablen zu und drucken Sie sie aus.
Stream()

– Die Methode „Stream()“ wird verwendet, um einen Stream von Elementen zu erstellen, sodass wir die Methoden filter(), map(), Reduce() usw. verwenden können, um die Daten zu verarbeiten

Arrays.stream(collection)
p>sum()

– Diese Methode wird verwendet, um die Summe aller Elemente in der Sammlung zu berechnen.

stream.sum()
Beispiel

In diesem Beispiel verwenden wir die Methoden stream() und sum(), um fehlende Zahlen über Java zu finden.

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);
   }
}

Ausgabe

lost number 4

Methode 2: XOR verwenden

Bei dieser Methode berechnen wir XOR von n Werten und speichern sie in der Variablen

expectedValue

, berechnen dann XOR von actualValue und führen schließlich XOR zwischen ExpectedValue undactualValue durch, um den fehlenden Betrag zu erhalten. Algorithmus

    Initialisieren Sie das Array mit einigen Werten.
  • Berechnen Sie die Länge des Arrays und addieren Sie 1, da ich denke, dass die tatsächliche Zahl im Array array.length+1 sein sollte, und weisen Sie sie der Variablen „n“ zu.
  • Setzen Sie den erwarteten Wert auf 1 und berechnen Sie den erwarteten Wert mithilfe einer for-Schleife unter Verwendung des XOR-Operators bis zu n.
  • Setzen Sie den erwarteten Wert auf Array[0] und berechnen Sie den tatsächlichen Wert der im Array vorhandenen Elemente mithilfe der for-Schleife und des XOR-Operators.
  • Berechnen Sie fehlende Zahlen mit dem XOR-Operator der erwarteten und tatsächlichen Werte und drucken Sie
XOR-Operation (^)

– Die XOR-Operation führt eine bitweise Operation durch und gibt 1 zurück, wenn beide Bits 1 sind, andernfalls gibt sie 0 zurück. Es wird durch ^ dargestellt.

A ^ b // where 'a' and 'b' are integers.	
Beispiel

In diesem Beispiel verwenden wir den XOR-Operator und suchen fehlende Zahlen mit 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);
   }
}

Ausgabe

The lost number is 4

Methode 3: HashSet verwenden

In diesem Beispiel verwenden wir die Datenstruktur Hashset und die integrierten Methoden von Hashset, um die fehlenden Zahlen mithilfe von Java zu finden.

Algorithmus

    Initialisieren Sie das Array mit einigen Werten.
  • Erstellen Sie ein Hash-Set und verwenden Sie eine for-Schleife, um das Array zu durchlaufen und die Werte zum Hash-Set hinzuzufügen.
  • Verwenden Sie eine for-Schleife, iterieren Sie i bis array.length+1 und verwenden Sie die Methode contains(), um nach fehlenden Werten in der Sammlung zu suchen und die fehlenden Zahlen auszugeben.
HashSet

– Ein Hash-Set ist eine ungeordnete Sammlung von Objekten, die keine doppelten Elemente zulässt.

HashSet<datatype> objName = new HashSet<datatype>();

contains()

– Diese Methode prüft, ob ein Wert in der Sammlung vorhanden ist und gibt einen booleschen Wert zurück.

setObjName.contains(value)
Beispiel

Bei dieser Methode speichern wir alle Elemente des Arrays in einem HashSet und iterieren dann von 1 bis array.length+1 Werte und prüfen, ob alle Werte im Set vorhanden sind. Wenn kein Wert vorhanden ist, dann dieser Der Wert wurde verloren und gedruckt.

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;
         }
      }
   }
}

Ausgabe

lost number: 4

In diesem Artikel haben wir verschiedene Möglichkeiten kennengelernt, verlorene Nummern mithilfe der Programmiersprache Java zu finden.

Das obige ist der detaillierte Inhalt vonJava-Programm zum Auffinden fehlender Zahlen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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