Find Missing Number From Series/Array
- Calculate A = n (n+1)/2 where n is largest number in series 1...N.
- Calculate B = Sum of all numbers in given series
- Missing number = A – B
public class FindMissingNumber {
public static void main(String[] args) {
//10 is missing
int[] numbers = {1,2,3,4,5,6,7,8,9, 11,12};
int N = 12;
int idealSum = (N * (N + 1)) / 2;
int sum = calculateSum(numbers);
int missingNumber = idealSum - sum;
System.out.println(missingNumber);
}
private static int calculateSum(int[] numbers) {
int sum = 0;
for (int n : numbers) {
sum += n;
}
return sum;
}
}
// Missing element
import java.io.*;
class GFG
{
static int search(int ar[],
int size)
{
int a = 0, b = size - 1;
int mid = 0;
while ((b - a) > 1)
{
mid = (a + b) / 2;
if ((ar[a] - a) != (ar[mid] - mid))
b = mid;
else if ((ar[b] - b) != (ar[mid] - mid))
a = mid;
}
return (ar[a] + 1);
}
// Driver Code
public static void main (String[] args)
{
int ar[] = { 1, 2, 3, 4, 5, 6, 8 };
int size = ar.length;
System.out.println("Missing number: " +
search(ar, size));
}
}