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.
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.
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
– 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)
– Diese Methode wird verwendet, um die Summe aller Elemente in der Sammlung zu berechnen.
stream.sum()
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
, berechnen dann XOR von actualValue und führen schließlich XOR zwischen ExpectedValue undactualValue durch, um den fehlenden Betrag zu erhalten. Algorithmus
– 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.
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
Algorithmus
– Ein Hash-Set ist eine ungeordnete Sammlung von Objekten, die keine doppelten Elemente zulässt.
HashSet<datatype> objName = new HashSet<datatype>();
– Diese Methode prüft, ob ein Wert in der Sammlung vorhanden ist und gibt einen booleschen Wert zurück.
setObjName.contains(value)
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
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!