Ich habe eine Liste von n ganzen Zahlen gegeben und diese ganzen Zahlen sind im Bereich von 1 bis n. Es gibt keine Duplikate in der Liste. Aber eine der ganzen Zahlen fehlt in der Liste. Ich muss die fehlende ganze Zahl finden.Die fehlende Nummer in der Sequenz finden
Example: If n=8
I/P [7,2,6,5,3,1,8]
O/P 4
I am using a simple concept to find the missing number which is to get the
sum of numbers
total = n*(n+1)/2
And then Subtract all the numbers from sum.
Die obige Methode schlägt jedoch fehl, wenn die Summe der Zahlen die maximal zulässige Ganzzahl überschreitet.
Also suchte ich nach einer zweiten Lösung und fand ich eine Methode wie folgt:?
1) XOR all the elements present in arr[], let the result of XOR be R1.
2) XOR all numbers from 1 to n, let XOR be R2.
3) XOR of R1 and R2 gives the missing number.
Wie wird diese Methode funktioniert .. Wie das XOR von R1 und R2 findet die fehlende ganze Zahl im obigen Fall ?
Wie wäre es mit Brute Forcing? Sortieren Sie das Array, überprüfen Sie das Paar der Indizes, für die '[n - (n-1)]' nicht gleich 1 ist. – Renan
Warum gibt es eine maximal zulässige ganze Zahl? – VoronoiPotato
@VoronoiPotato: Was ist, wenn es 1 Milliarde Zahlen in der Sequenz gibt und er auf 32-Bit-Ganzzahlen begrenzt ist? –