# Missing even and odd elements from the given arrays

• Last Updated : 22 Jun, 2022

Given two integer arrays, even[] and odd[] which contain consecutive even and odd elements respectively, with one element missing from each of the arrays. The task is to find the missing elements.

Examples:

Input: even[] = {6, 4, 8, 14, 10}, odd[] = {7, 5, 3, 11, 13}
Output:
Even = 12
Odd = 9

Input: even[] = {4, 6, 2, 10}, odd[] = {7, 5, 9, 13, 11, 17}
Output:
Even = 8
Odd = 15

Approach: Store the minimum and the maximum even elements from the even[] array in variables minEven and maxEven. As we know, the sum of first N even numbers is N * (N + 1). Calculate the sum of even numbers from 2 to minEven say sum1 and the sum of even numbers from 2 to maxEven say sum2. Now, the required sum of the even array will be reqSum = sum2 – sum1 + minEven, subtracting the even[] array sum from this reqSum will give us the missing even number.
Similarly, the missing odd number can also be found as we know that the sum of the first N odd numbers is N2.
Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach``#include ``using` `namespace` `std;` `// Function to find the missing numbers``void` `findMissingNums(``int` `even[], ``int` `sizeEven, ``int` `odd[], ``int` `sizeOdd)``{` `    ``// To store the minimum and the maximum``    ``// odd and even elements from the arrays``    ``int` `minEven = INT_MAX;``    ``int` `maxEven = INT_MIN;``    ``int` `minOdd = INT_MAX;``    ``int` `maxOdd = INT_MIN;` `    ``// To store the sum of the array elements``    ``int` `sumEvenArr = 0, sumOddArr = 0;` `    ``// Get the minimum and the maximum``    ``// even elements from the array``    ``for` `(``int` `i = 0; i < sizeEven; i++) {``        ``minEven = min(minEven, even[i]);``        ``maxEven = max(maxEven, even[i]);``        ``sumEvenArr += even[i];``    ``}` `    ``// Get the minimum and the maximum``    ``// odd elements from the array``    ``for` `(``int` `i = 0; i < sizeOdd; i++) {``        ``minOdd = min(minOdd, odd[i]);``        ``maxOdd = max(maxOdd, odd[i]);``        ``sumOddArr += odd[i];``    ``}` `    ``// To store the total terms in the series``    ``// and the required sum of the array``    ``int` `totalTerms = 0, reqSum = 0;` `    ``// Total terms from 2 to minEven``    ``totalTerms = minEven / 2;` `    ``// Sum of all even numbers from 2 to minEven``    ``int` `evenSumMin = totalTerms * (totalTerms + 1);` `    ``// Total terms from 2 to maxEven``    ``totalTerms = maxEven / 2;` `    ``// Sum of all even numbers from 2 to maxEven``    ``int` `evenSumMax = totalTerms * (totalTerms + 1);` `    ``// Required sum for the even array``    ``reqSum = evenSumMax - evenSumMin + minEven;` `    ``// Missing even number``    ``cout << ``"Even = "` `<< reqSum - sumEvenArr << ``"\n"``;` `    ``// Total terms from 1 to minOdd``    ``totalTerms = (minOdd / 2) + 1;` `    ``// Sum of all odd numbers from 1 to minOdd``    ``int` `oddSumMin = totalTerms * totalTerms;` `    ``// Total terms from 1 to maxOdd``    ``totalTerms = (maxOdd / 2) + 1;` `    ``// Sum of all odd numbers from 1 to maxOdd``    ``int` `oddSumMax = totalTerms * totalTerms;` `    ``// Required sum for the odd array``    ``reqSum = oddSumMax - oddSumMin + minOdd;` `    ``// Missing odd number``    ``cout << ``"Odd = "` `<< reqSum - sumOddArr;``}` `// Driver code``int` `main()``{``    ``int` `even[] = { 6, 4, 8, 14, 10 };``    ``int` `sizeEven = ``sizeof``(even) / ``sizeof``(even[0]);``    ``int` `odd[] = { 7, 5, 3, 11, 13 };``    ``int` `sizeOdd = ``sizeof``(odd) / ``sizeof``(odd[0]);``    ``findMissingNums(even, sizeEven, odd, sizeOdd);` `    ``return` `0;``}`

## Java

 `// Java implementation of the approach``class` `GFG``{``    ` `// Function to find the missing numbers``static` `void` `findMissingNums(``int` `even[], ``int` `sizeEven,``                            ``int` `odd[], ``int` `sizeOdd)``{` `    ``// To store the minimum and the maximum``    ``// odd and even elements from the arrays``    ``int` `minEven =Integer.MAX_VALUE;``    ``int` `maxEven =Integer.MIN_VALUE;``    ``int` `minOdd = Integer.MAX_VALUE;``    ``int` `maxOdd = Integer.MIN_VALUE;` `    ``// To store the sum of the array elements``    ``int` `sumEvenArr = ``0``, sumOddArr = ``0``;` `    ``// Get the minimum and the maximum``    ``// even elements from the array``    ``for` `(``int` `i = ``0``; i < sizeEven; i++)``    ``{``        ``minEven = Math.min(minEven, even[i]);``        ``maxEven = Math.max(maxEven, even[i]);``        ``sumEvenArr += even[i];``    ``}` `    ``// Get the minimum and the maximum``    ``// odd elements from the array``    ``for` `(``int` `i = ``0``; i < sizeOdd; i++)``    ``{``        ``minOdd = Math.min(minOdd, odd[i]);``        ``maxOdd = Math.max(maxOdd, odd[i]);``        ``sumOddArr += odd[i];``    ``}` `    ``// To store the total terms in the series``    ``// and the required sum of the array``    ``int` `totalTerms = ``0``, reqSum = ``0``;` `    ``// Total terms from 2 to minEven``    ``totalTerms = minEven / ``2``;` `    ``// Sum of all even numbers``    ``// from 2 to minEven``    ``int` `evenSumMin = (totalTerms *``                     ``(totalTerms + ``1``));` `    ``// Total terms from 2 to maxEven``    ``totalTerms = maxEven / ``2``;` `    ``// Sum of all even numbers from``    ``// 2 to maxEven``    ``int` `evenSumMax = (totalTerms *``                     ``(totalTerms + ``1``));` `    ``// Required sum for the even array``    ``reqSum = evenSumMax - evenSumMin + minEven;` `    ``// Missing even number``    ``System.out.println(``"Even = "` `+``                      ``(reqSum - sumEvenArr));` `    ``// Total terms from 1 to minOdd``    ``totalTerms = (minOdd / ``2``) + ``1``;` `    ``// Sum of all odd numbers``    ``// from 1 to minOdd``    ``int` `oddSumMin = totalTerms * totalTerms;` `    ``// Total terms from 1 to maxOdd``    ``totalTerms = (maxOdd / ``2``) + ``1``;` `    ``// Sum of all odd numbers``    ``// from 1 to maxOdd``    ``int` `oddSumMax = totalTerms * totalTerms;` `    ``// Required sum for the odd array``    ``reqSum = oddSumMax - oddSumMin + minOdd;` `    ``// Missing odd number``    ``System.out.println(``"Odd = "` `+``                      ``(reqSum - sumOddArr));``}` `// Driver code``public` `static` `void` `main(String[] args)``{``    ``int` `even[] = { ``6``, ``4``, ``8``, ``14``, ``10` `};``    ``int` `sizeEven = even.length;``    ``int` `odd[] = { ``7``, ``5``, ``3``, ``11``, ``13` `};``    ``int` `sizeOdd = odd.length;``    ``findMissingNums(even, sizeEven,``                     ``odd, sizeOdd);``}``}` `// This code is contributed``// by Code_Mech.`

## Python3

 `# Python3 implementation of the approach``import` `sys` `# Function to find the missing numbers``def` `findMissingNums(even, sizeEven,``                      ``odd, sizeOdd):` `    ``# To store the minimum and the``    ``# maximum odd and even elements``    ``# from the arrays``    ``minEven ``=` `sys.maxsize ;``    ``maxEven ``=` `-``(sys.maxsize ``-` `1``);``    ``minOdd ``=` `sys.maxsize ;``    ``maxOdd ``=` `-``(sys.maxsize ``-` `1``);``    ` `    ``# To store the sum of the``    ``# array elements``    ``sumEvenArr ``=` `0``;``    ``sumOddArr ``=` `0``;` `    ``# Get the minimum and the maximum``    ``# even elements from the array``    ``for` `i ``in` `range``(sizeEven) :``        ``minEven ``=` `min``(minEven, even[i]);``        ``maxEven ``=` `max``(maxEven, even[i]);``        ``sumEvenArr ``+``=` `even[i];` `    ``# Get the minimum and the maximum``    ``# odd elements from the array``    ``for` `i ``in` `range``(sizeOdd) :``        ``minOdd ``=` `min``(minOdd, odd[i]);``        ``maxOdd ``=` `max``(maxOdd, odd[i]);``        ``sumOddArr ``+``=` `odd[i];``    ` `    ``# To store the total terms in``    ``# the series and the required``    ``# sum of the array``    ``totalTerms ``=` `0``;``    ``reqSum ``=` `0``;` `    ``# Total terms from 2 to minEven``    ``totalTerms ``=` `minEven ``/``/` `2``;` `    ``# Sum of all even numbers from``    ``# 2 to minEven``    ``evenSumMin ``=` `(totalTerms ``*``                 ``(totalTerms ``+` `1``));` `    ``# Total terms from 2 to maxEven``    ``totalTerms ``=` `maxEven ``/``/` `2``;` `    ``# Sum of all even numbers from``    ``# 2 to maxEven``    ``evenSumMax ``=` `(totalTerms ``*``                 ``(totalTerms ``+` `1``));` `    ``# Required sum for the even array``    ``reqSum ``=` `(evenSumMax ``-``              ``evenSumMin ``+` `minEven);` `    ``# Missing even number``    ``print``(``"Even ="``, reqSum ``-``                    ``sumEvenArr);` `    ``# Total terms from 1 to minOdd``    ``totalTerms ``=` `(minOdd ``/``/` `2``) ``+` `1``;` `    ``# Sum of all odd numbers from``    ``# 1 to minOdd``    ``oddSumMin ``=` `totalTerms ``*` `totalTerms;` `    ``# Total terms from 1 to maxOdd``    ``totalTerms ``=` `(maxOdd ``/``/` `2``) ``+` `1``;` `    ``# Sum of all odd numbers from``    ``# 1 to maxOdd``    ``oddSumMax ``=` `totalTerms ``*` `totalTerms;` `    ``# Required sum for the odd array``    ``reqSum ``=` `(oddSumMax ``-``              ``oddSumMin ``+` `minOdd);` `    ``# Missing odd number``    ``print``(``"Odd ="``, reqSum ``-` `sumOddArr);` `# Driver code``if` `__name__ ``=``=` `"__main__"` `:``    ` `    ``even ``=` `[ ``6``, ``4``, ``8``, ``14``, ``10` `];``    ``sizeEven ``=` `len``(even)``    ``odd ``=` `[ ``7``, ``5``, ``3``, ``11``, ``13` `];``    ``sizeOdd ``=` `len``(odd) ;``    ``findMissingNums(even, sizeEven,``                    ``odd, sizeOdd);` `# This code is contributed by Ryuga`

## C#

 `// C# implementation of the approach``using` `System;` `class` `GFG``{``    ` `// Function to find the missing numbers``static` `void` `findMissingNums(``int` `[]even, ``int` `sizeEven,``                            ``int` `[]odd, ``int` `sizeOdd)``{` `    ``// To store the minimum and the maximum``    ``// odd and even elements from the arrays``    ``int` `minEven =``int``.MaxValue;``    ``int` `maxEven =``int``.MinValue;``    ``int` `minOdd = ``int``.MaxValue;``    ``int` `maxOdd = ``int``.MinValue;` `    ``// To store the sum of the array elements``    ``int` `sumEvenArr = 0, sumOddArr = 0;` `    ``// Get the minimum and the maximum``    ``// even elements from the array``    ``for` `(``int` `i = 0; i < sizeEven; i++)``    ``{``        ``minEven = Math.Min(minEven, even[i]);``        ``maxEven = Math.Max(maxEven, even[i]);``        ``sumEvenArr += even[i];``    ``}` `    ``// Get the minimum and the maximum``    ``// odd elements from the array``    ``for` `(``int` `i = 0; i < sizeOdd; i++)``    ``{``        ``minOdd = Math.Min(minOdd, odd[i]);``        ``maxOdd = Math.Max(maxOdd, odd[i]);``        ``sumOddArr += odd[i];``    ``}` `    ``// To store the total terms in the series``    ``// and the required sum of the array``    ``int` `totalTerms = 0, reqSum = 0;` `    ``// Total terms from 2 to minEven``    ``totalTerms = minEven / 2;` `    ``// Sum of all even numbers``    ``// from 2 to minEven``    ``int` `evenSumMin = (totalTerms *``                    ``(totalTerms + 1));` `    ``// Total terms from 2 to maxEven``    ``totalTerms = maxEven / 2;` `    ``// Sum of all even numbers from``    ``// 2 to maxEven``    ``int` `evenSumMax = (totalTerms *``                    ``(totalTerms + 1));` `    ``// Required sum for the even array``    ``reqSum = evenSumMax - evenSumMin + minEven;` `    ``// Missing even number``    ``Console.WriteLine(``"Even = "` `+``                    ``(reqSum - sumEvenArr));` `    ``// Total terms from 1 to minOdd``    ``totalTerms = (minOdd / 2) + 1;` `    ``// Sum of all odd numbers``    ``// from 1 to minOdd``    ``int` `oddSumMin = totalTerms * totalTerms;` `    ``// Total terms from 1 to maxOdd``    ``totalTerms = (maxOdd / 2) + 1;` `    ``// Sum of all odd numbers``    ``// from 1 to maxOdd``    ``int` `oddSumMax = totalTerms * totalTerms;` `    ``// Required sum for the odd array``    ``reqSum = oddSumMax - oddSumMin + minOdd;` `    ``// Missing odd number``    ``Console.WriteLine(``"Odd = "` `+``                    ``(reqSum - sumOddArr));``}` `// Driver code``static` `void` `Main()``{``    ``int` `[]even = { 6, 4, 8, 14, 10 };``    ``int` `sizeEven = even.Length;``    ``int` `[]odd = { 7, 5, 3, 11, 13 };``    ``int` `sizeOdd = odd.Length;``    ``findMissingNums(even, sizeEven,``                    ``odd, sizeOdd);``}``}` `// This code is contributed``// by chandan_jnu`

## PHP

 ``

## Javascript

 ``

Output:

```Even = 12
Odd = 9```

Time Complexity: O(sizeEven + sizeOdd)

Auxiliary Space: O(1)

My Personal Notes arrow_drop_up