Find the missing number in an array

Computer science job interview question:
Find the missing number in the series.
Write a program to calculate the missing number in the series of integers.

There are multiple ways to do this bu
using the Gauss Sum addition method is a nice trick and it’s faster than any brute-force iteration you might think of.
More info https://en.wikipedia.org/wiki/Gauss_sum

The idea is that you take the count of elements you have including the missing number and add 1 to that then divide it by 2. This is a nice way to write some leetcode or leet-code 1337 and pretend you know what you’re doing.
https://en.wikipedia.org/wiki/Leet

The set of numbers doesn’t need to be sorted.
you can actually count the elements and add the missing array element.

Set1= 1,2,4,5,6,7,8,9,10
n * (n+1) /2

Gauss sum works like this:

Set1= 1,2,3,4,5,6,7,8,9,10

Add reversed set to itself:

Set1= 1,2,3,4,5,6,7,8,9,10
Set2= 10,9,8,7,6,5,4,3,2,1
Set= 1+10=11, 2+9=11, 3+8=11....10+1=11
Becomes 10(11)/2
=110/2
=55

This finds the Gauss sum of a whole set just by counting the items.

Then you make an actual sum of the numbers you have.

Count elements and add +1 for the missing number.
SetCount = Count+9 = 9+1 = 10
Sum(Set1) = (1+2+4+5+6+7+8+9+10)=52

Now you subtract the actual sum from the Gauss sum to get the missing number.

MissingNumber = GaussSum - Sum(Set1)

Whole program steps

set1 = [1,2,4,5,6]
n = count(set1) + 1
gauss_sum = n(n+1)/2
actual_sum = sum(set1)
missing_number = gauss_sum - actual_sum

In the video you will see why you need to add the +1 there and why this works.



Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.