Related Articles
Count of Missing Numbers in a sorted array
• Last Updated : 14 Sep, 2020

Given a sorted array arr[], the task is to calculate the number of missing numbers between the first and last element of the sorted array.

Examples:

Input: arr[] = { 1, 4, 5, 8 }
Output: 4
Explanation:
The missing integers in the array are {2, 3, 6, 7}.
Therefore, the count is 4.

Input: arr[] = {5, 10, 20, 40}
Output: 32

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Naive Approach:
The simplest approach to solve the problem is to iterate through the array and calculate the sum of all the adjacent differences of the elements of the array.

Time Complexity: O(N)
Auxiliary Space: O(1)

Efficient Approach:
To optimize the above approach, the idea is to observe that the total count of numbers in the range of [arr[0], arr[N – 1]] is given by arr[N-1] – arr[0] + 1. Since the size of the array is N, the count of missing integers in the array is given by arr[N-1] – arr[0] + 1 – N.

Below is the implementation of the above approach:

## C++

 `// C++ Program for the above approach ``#include  ``using` `namespace` `std; `` ` `// Function that find the count of ``// missing numbers in array a[] ``void` `countMissingNum(``int` `a[], ``int` `N) ``{ ``    ``// Calculate the count of missing ``    ``// numbers in the array ``    ``int` `count = a[N - 1] - a[0] + 1 - N; `` ` `    ``cout << count << endl; ``} `` ` `// Driver Code ``int` `main() ``{ ``    ``int` `arr[] = { 5, 10, 20, 40 }; `` ` `    ``int` `N = ``sizeof``(arr) / ``sizeof``(arr[0]); `` ` `    ``countMissingNum(arr, N); `` ` `    ``return` `0; ``}`

## Java

 `// Java program for the above approach ``class` `GFG{ ``     ` `// Function that find the count of ``// missing numbers in array a[] ``public` `static` `void` `countMissingNum(``int``[] a, ``                                ``int` `N) ``{ ``     ` `    ``// Calculate the count of missing ``    ``// numbers in the array ``    ``int` `count = a[N - ``1``] - a[``0``] + ``1` `- N; `` ` `    ``System.out.println(count); ``} `` ` `// Driver code ``public` `static` `void` `main(String[] args) ``{ ``    ``int` `arr[] = { ``5``, ``10``, ``20``, ``40` `}; `` ` `    ``int` `N = arr.length; `` ` `    ``countMissingNum(arr, N); ``} ``} `` ` `// This code is contributed by divyeshrabadiya07 `

## Python3

 `# Python3 program for the above approach`` ` `# Function that find the count of ``# missing numbers in array a[] ``def` `countMissingNum(a, N): ``     ` `    ``# Calculate the count of missing ``    ``# numbers in the array ``    ``count ``=` `a[N ``-` `1``] ``-` `a[``0``] ``+` `1` `-` `N `` ` `    ``print``(count) `` ` `# Driver Code ``arr ``=` `[ ``5``, ``10``, ``20``, ``40` `] `` ` `N ``=` `len``(arr) `` ` `countMissingNum(arr, N) `` ` `# This code is contributed by sanjoy_62`

## C#

 `// C# program for the above approach ``using` `System;`` ` `class` `GFG{``     ` `// Function that find the count of ``// missing numbers in array a[] ``public` `static` `void` `countMissingNum(``int``[] a,``                                   ``int` `N) ``{ ``     ` `    ``// Calculate the count of missing ``    ``// numbers in the array ``    ``int` `count = a[N - 1] - a[0] + 1 - N; `` ` `    ``Console.Write(count); ``} `` ` `// Driver code``public` `static` `void` `Main(``string``[] args)``{``    ``int` `[]arr = { 5, 10, 20, 40 }; ``    ``int` `N = arr.Length; `` ` `    ``countMissingNum(arr, N); ``}``}`` ` `// This code is contributed by rutvik_56`
Output:
```32
```

Time Complexity: O(1)
Auxiliary Space: O(1)

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up