Missing two numbers in an array

Missing two numbers in array

An array contains all the integer from 0 to n, expect for two numbers which are missing. Find missing number in O(n) in O(1) extra space.

Facts:

  • Find missing numbers sum
  • Find missing numbers product
  • Suppose missing numbers are x and y.
  • Now, x + y = sum_of_missing_numbers and
  • x * y = product_of_missing_numbers
  • Solve this quadratic equation.
Algorithm:
  1. Compute sum_of_missing_numbers
  2. Computer product_of_missing_numbers
  3. Set a = 1, b = sum_of_missing_numbers and c = product_of_missing_numbers
  4. Now Solve ax^2 + bx + c = 0
  5. Missing number1 = (-b+√​(b​2​​−4ac​​​​​)) / 2a​​
  6. Missing number2 = (-b-√​(b​2​​−4ac​​​​​)) / 2a​​
  7. Return number1 and number2

Latest Source Code:
Github: MissingTwoNumbersInArray.java


Output:

Array: [1, 2, 4, 6, 5]
N: 7
Missing Number: Missing Numbers {n1=-3, n2=-7}
Author: Hrishikesh Mishra